我不知道我做錯了什么,但我的解決方案似乎不起作用。
檢查給定的正整數 n 在寫出時是否只包含奇數位(1、3、5、7 和 9)。如果是這種情況,則回傳 True,否則回傳 False。請注意,這個問題不是問數字 n 本身是奇數還是偶數。因此,您必須先查看給定數字的每一位數字,然后才能宣布該數字不包含奇數位。
我的解決方案(適用于 Python)
def only_odd_digits(n):
b = list(str(n))
onlyodd = [1,3,5,7,9]
for index, value in enumerate(b):
if value in onlyodd:
return True
else:
return False
有人可以幫忙嗎?謝謝
uj5u.com熱心網友回復:
您還可以使用all來避免回圈,然后使用 alparslan mimaro?lu 已經建議的模數來避免查找:
def only_odd_digits(n):
digits = map(int, str(n))
return all(dig % 2 for dig in digits)
我喜歡現在被洗掉的基于集合的答案。像這樣使用它時它的作業原理:
def only_odd_digits(n):
return set(str(n)).issubset(set("13579"))
uj5u.com熱心網友回復:
您已經創建了要檢查的整數串列。您只需要檢查每個數字是否可以被 2 整除。如果其中任何一個是,您只需回傳 False。如果它們都不是,您可以回傳 True
def only_odd_digits(n):
digits = [int(digit) for digit in str(n)]
for digit in digits:
if digit % 2 == 0:
return False
return True
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/353547.html
標籤:蟒蛇-3.x
上一篇:如何從輸出中洗掉括號和逗號(并告訴我我做錯了什么)?
下一篇:比較csv檔案中的兩列
