#author("2026-07-01T14:42:38+09:00;2023-02-23T23:33:34+09:00","default:vip","vip")
#author("2026-07-04T17:52:09+09:00;2023-02-23T23:33:34+09:00","default:vip","vip")
[[練習問題/解答例/世界のナベアツ問題/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