iT邦幫忙

0

python - 多個數的偶數判斷

  • 分享至 

  • xImage

小弟是python新手
想請教各位大大
<讓使用著輸入三個整數,並且輸出偶數部分,要按照格式輸出>
ex:
輸入:3
輸入:4
輸入:6
................
輸出:
偶數 = 4 , 8
................
小弟用 for loop,但是不能出現在同一行:
nm1 = int(input(": "))
nm2 = int(input(": "))
nm3 = int(input(": "))
nm4 = [nm1, nm2, nm3]
for nms in nm4:
if nms%2 == 0:
print(nms)
................
創新的 list,但是出來的是[4, 6]:
nm1 = int(input(": "))
nm2 = int(input(": "))
nm3 = int(input(": "))
nm4 = [nm1, nm2, nm3]
nms = []
for x in nm4:
if x%2 == 0:
nms.append(x)
print(nms)
................
只能一項一項列,把所有可能都列出來:

if nm1%2 != 0 and nm2%2 == 0 and nm3%2 == 0:
print("偶數 = %d , %d" %(nm2, nm3))
elif.....
elif.....
................
想問各位大佬有沒有比一項一項列出來還更有效率的方法

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
tryit
iT邦研究生 4 級 ‧ 2022-11-29 01:24:51
最佳解答

基本上就存到串列裡面輸出

even = []#空串列儲存偶數
for i in range(3):
    temp = int(input())
    if temp % 2 == 0:
        even.append(temp)
if even:#如果有偶數
    print("偶數=",end="")#把換行符號換成空字串
    print(*even,sep=",")#把原本逗點形成的空格換成逗點

如果想用format

even = []#空串列儲存偶數
for i in range(3):
    temp = int(input())
    if temp % 2 == 0:
        even.append(temp)
if even:
    ans = str(even)[1:-1]#變成文字,會比較單純
    print(f"偶數={ans}")

就這樣,基本上增加輸入的次數阿、換成奇數阿或者奇偶數都要,都可以這樣改

看更多先前的回應...收起先前的回應...
b0ki iT邦新手 5 級 ‧ 2022-11-30 09:17:31 檢舉

print('偶數='+f'nms'[1:-1])

b0ki iT邦新手 5 級 ‧ 2022-11-30 09:21:44 檢舉

print('偶數='+f'{nms}'[1,-1])才對

b0ki iT邦新手 5 級 ‧ 2022-11-30 09:21:45 檢舉

print('偶數='+f'{nms}'[1,-1])才對

b0ki iT邦新手 5 級 ‧ 2022-11-30 09:27:19 檢舉

回覆在錯的地方了,不好意思!

tryit iT邦研究生 4 級 ‧ 2022-11-30 14:15:14 檢舉

b0ki 沒事,只是你今天的回覆就用完了XD

2
小哈片刻
iT邦研究生 5 級 ‧ 2022-11-29 01:29:26

第二個方法,看起來只是輸出的格式不合你的意思。

可以改成

nm1 = int(input(": "))
nm2 = int(input(": "))
nm3 = int(input(": "))
nm4 = [nm1, nm2, nm3]
nms = []
for x in nm4:
    if x%2 == 0:
        nms.append(x)
        
print(" , ".join(map(str, nms)))
0
froce
iT邦大師 1 級 ‧ 2022-11-29 10:14:48

兩行...其實要一行也可以,只是很醜。

numList = [input() for i in range(3)]
print(",".join(filter(lambda x: int(x)%2 ==0, numList)))
b0ki iT邦新手 5 級 ‧ 2022-11-30 09:25:48 檢舉

print('偶數='+f'{nms}'[1:-1])
在下第一次用IT邦回覆功能,樓上被打擾的不好意思!

0
b0ki
iT邦新手 5 級 ‧ 2022-11-30 09:26:10

print('偶數='+f'{nms}'[1:-1])
在下第一次用IT邦回覆功能,樓上被打擾的不好意思!

我要發表回答

立即登入回答