此程序(输出)有什么问题(如果是elif)(isdigit)

2024-10-02 06:28:59 发布

您现在位置:Python中文网/ 问答频道 /正文

sheep = input("Please enter the number of sheep ")
if sheep.isdigit == False:
    print("Wrong input. Number should be an integer greater than 0")

if sheep >= 0 and sheep <= 39:
    zakat = 0
elif sheep >= 40 and sheep <= 120:
    zakat = 1
elif sheep >= 121 and sheep <= 200:
    zakat = 2
elif sheep >= 201 and sheep <= 399:
    zakat = 3
else:
    zakat = sheep // 100

print("The zakat amount =", zakat, "sheep")

Tags: andofthefalsenumberinputifprint
3条回答

input()将返回字符串,因此您应该将其转换为整数

sheep=int(input("Please enter the number of sheep "))

if sheep>=0 and sheep<=39:
    zakat=0
elif sheep >=40 and sheep<=120:
    zakat=1
elif sheep>=121 and sheep<=200:
    zakat=2
elif sheep>=201 and sheep<=399:
    zakat=3
else:
    zakat=sheep//100

print("The zakat amount =",zakat,"sheep")

您的输出在else块中。从那里删除它,代码应该可以工作

while True:
    try:
        sheep = int(input("How many sheep?"))
        break
    except:
        print("Please enter a digit")

if sheep>=0 and sheep<=39:
    zakat=0
elif sheep >=40 and sheep<=120:
    zakat=1
elif sheep>=121 and sheep<=200:
    zakat=2
elif sheep>=201 and sheep<=399:
    zakat=3
zakat = sheep// 100
print("The zakat amount of sheep:" + zakat)

sheep.isdigit返回:<function str.isdigit()>

基本上,isdigit是一个函数,sheep.isdigit()也是一个函数

所以代码可能是这样的:

sheep = input("Please enter the number of sheep ")

if not sheep.isdigit():
    print("Provide a number")
else:
    if sheep>=0 and sheep<=39:
        zakat=0
    elif sheep >=40 and sheep<=120:
        zakat=1
    elif sheep>=121 and sheep<=200:
        zakat=2
    elif sheep>=201 and sheep<=399:
        zakat=3
    elif:
        zakat=sheep//100
    print("The zakat amount =",zakat,"sheep")

相关问题 更多 >

    热门问题