練習問題/解答例/世界のナベアツ問題/Python

#!/usr/bin/env python
def nabeatsu(n):
    return ['Aho' if i%3==0 or '3' in str(i) else i for i in range(1,n+1)]

print(nabeatsu(int(input('n: '))))

#わかりやすく

'''
# 誤った実装
n = 1
while n + 1> n:  # 常に真
	 if n % 3 == 0:
		 print "aho"
	 elif "3" in str(n): 
		 print "aho"
	 else:
		 print n
	 n += 1
'''

↑の無限ループを排除

n = int(input('n: '))
for i in range(1, n+1):
    if i % 3 == 0:
        print("aho")
    elif "3" in str(i): 
        print("aho")
    else:
        print(i)

ワンライナー

["aho" if x % 3 == 0 or "3" in str(x) else x for x in range(1, 41)]

こういう書き方もあります。

[(((x%3==0 or '3' in str(x)) and 'aho') or x) for x in range(1,41)]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-02-23 (木) 23:33:34