iT邦幫忙

0

#Python while迴圈問題~

cyx_71 2021-05-19 00:15:2210494 瀏覽
  • 分享至 

  • twitterImage

小女目前自學Python
碰到書上一題練習題,苦難想不出來沒有結果QQ
不知道是不是我把它搞複雜了,還請大家幫幫忙了!!感謝你們。
題目:
利用while設計一個程式。輸入一個正整數後,顯示由1到該整數的所有偶數。(<even.py>)

  1. 請輸入正整數n的值:8 / 顯示結果:2 4 6 8
  2. 請輸入正整數n的值:25/ 顯示結果:2 4 6 8 10 12 14 16 18 20 22 24
小女是指女兒喔~小女子是自己
rofellos iT邦新手 2 級 ‧ 2021-05-19 16:29:28 檢舉
你沒講出你遇到的問題..
可以先思考怎麼樣將1~該整數輸出出來=>
接著思考1~該整數這些數字之中要怎麼得出偶數=>
可以得到偶數就印出來答案就出來了
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
johnsonnnn
iT邦新手 4 級 ‧ 2021-05-19 07:40:26

方法一(用while)

count = 0
inputs = int(input("請輸入正整數n的值:\n"))
print('顯示結果:', end='')
while True:
  if count % 2 == 0 and count > 1:
    print(count, ' ', end='')
  if count == inputs:
    break
  count += 1

方法二(用for)

inputs = int(input("請輸入正整數n的值:\n"))
print('顯示結果:', end='')
for i in range(0, inputs, 2):
	if i > 0:
		print(i, ' ', end='')
0
echochio
iT邦高手 1 級 ‧ 2021-05-19 10:19:50

好想亂寫一通

d = lambda i : [s for s in range(2, i+1, 2)]
i = int(input("請輸入正整數n的值:\n"))
print (d(i))

認真用 while 寫一下

i = int(input("請輸入正整數n的值:\n"))
s = 2
a = []
while s <= i :
    a.append(s)
    s+=2
print (a)

這邊簡單講解

1. 輸入 n
2. s 為第一個偶數 2
3. 設定 a 是一個空的 list (放結果用)
4,5. 去做判斷當 s 小於等於 n 時放入 a 列表中, 還是結束迴圈
6. s 為下一個偶數, 之後回到 while 去做判斷是否結束迴圈
7. 印出列表 a (結果)
小魚 iT邦大師 1 級 ‧ 2021-05-19 12:49:07 檢舉

沒有亂寫啊, 只要能抓老鼠就是好貓

1
japhenchen
iT邦超人 1 級 ‧ 2021-05-19 12:48:47
s = int(input("輸入一個正整數"))  #這不用解釋吧?輸入並轉換成整數
i = 1  # 讓while判斷用的
while i <= s :  #如果i 小於等於 s則執行以下3行程式
    if i % 2 == 0: #如果 i % 2 (i 除以 2 的餘數)為0 ,則為偶數,印出
        print(i)
    i = i + 1 # i累加1

ps: 我認定0不算偶數,所以取值 1 到 s 之間
(SORRY漏看要用while....)

因為初學不適合教一行寫法

0
shijung
iT邦新手 4 級 ‧ 2021-05-20 09:26:28
# -*- coding: UTF-8
### fileName: "even.py"
# 利用while設計一個程式。輸入一個正整數後,顯示由1到該整數的所有偶數。
def findEvens(toNumber):
    sNum = 1
    arr = []
    while(sNum <= toNumber):
        if sNum % 2 == 0:
            arr.append(sNum)
        sNum+=1
    print(*arr)
while True:
    try:
        s = int(input("請輸入正整數n的值:"))
        findEvens(s)
    except EOFError:
        findEvens(8)
        findEvens(15)
        pass
    except ValueError:
        print("輸入錯啦!")
# 請輸入正整數n的值:8 / 顯示結果:2 4 6 8
# 請輸入正整數n的值:25/ 顯示結果:2 4 6 8 10 12 14 16 18 20 22 24
0
oxygen8848
iT邦新手 5 級 ‧ 2021-05-20 09:58:20
def test(N):                    # 包成函式,並將引數(目標值)傳入函式裡
    count = 1                   # 利用count該物件去跑到你要的目標值
    while int(count) <= int(N): # while 判斷式
        if count % 2 == 0:      # 若求除於2的餘數為0,就是妳要的內容值
            print(f"{count}")   # 列印出內容值,這邊有個小技巧就是f"{}"
        count += 1              # 計數加1,直到大於目標值

test(int(input("please keyin here:"))) 
# 呼叫函式,該參數(input("please keyin here:"))相當於引數N,再注意一下型別(int)

我要發表回答

立即登入回答