Python 大于 than/less 符号的 While 语句

Python While Statement with greater than/less than signs

print ("Hello, this is a change return program, coded by A person")
cost = float(input("How much did the object cose (in £s, eg 0.50 for 50p)?"))
given = float(input("How much money did you pay (in the same format)?"))
change = given - cost
twentypounds = 0
tenpounds = 0
fivepounds = 0
twopounds = 0
onepound = 0
fiftypennies = 0
twentypennies = 0
tenpennies = 0
fivepennies = 0
twopennies = 0
onepenny = 0
print(change)
while change >= 20:
    change = change - 20
    twentypounds + 1
print(twentypounds)

while change >=10 and <20 :
    change = change - 10
    tenpounds + 1
print(tenpounds)

while change 10> and >= 5:
    change = change - 5
    fivepounds + 1
print(fivepounds)

while change <5 and >= 2:
    change = change - 2
    twopounds + 1
print(twopounds)

while change <2 and >= 1:
    change = change - 1
    onepound + 1
print(onepound)

while change <1 and >= 0.5:
    change = change - 0.5
    fiftypennies + 1
print(fiftypennies)

while change <0.5 and >= 0.2:
    change = change - 0.2
    twentypennies + 1
print(twentypennies)

while change <0.2 and >= 0.1:
    change = change - 0.1
    tenpennies + 1
print(tenpennies)

while change  <0.1 and >= 0.05:
    change = change - 0.05
    fivepennies + 1
print(fivepennies)

while change <0.05 and >= 0.02:
    change = change - 0.02
    twopennies + 1
print(twopennies)

while change <0.02 and >= 0.01:
    change = change - 0.01
    onepennies + 1
print(onepenny)


print("The Change Value is now:", change, "  This is for debugging only")
twenty_pounds = twentypounds * 20
ten_pounds = tenpounds * 10
five_pounds = fivepounds * 5
two_pounds = twopounds * 2
one_pound = onepound * 1
fifty_pennies = (fiftypennies * 50) / 100
twenty_pennies = (twentypennies * 20) / 100
ten_pennies = (tenpennies * 10) / 100
five_pennies = (fivepennies * 5) / 100
two_pennies = (twopennies * 2) / 100
one_penny = (onepenny * 1) / 100
total_change = twenty_pounds + ten_pounds + five_pounds + two_pounds + one_pound + fifty_pennies + twenty_pennies + ten_pennies + five_pennies + two_pennies + one_penny
print("Your Total Change is:", total_change)

这个 returns 确实有效时只有 0.0 次,现在一直给我无效的语法,我尝试交换符号,然后交换数字,但没有成功有什么,知道如何解决这个问题吗?


新代码:(仍然不工作,虽然现在没有语法错误,只是 returns 0(尽管数字在第 4 行发生变化)

print ("Hello, this is a change return program, coded by A person")
cost = float(input("How much did the object cose (in £s, eg 0.50 for 50p)?"))
given = float(input("How much money did you pay (in the same format)?"))
change = given - cost
twentypounds = 0
tenpounds = 0
fivepounds = 0
twopounds = 0
onepound = 0
fiftypennies = 0
twentypennies = 0
tenpennies = 0
fivepennies = 0
twopennies = 0
onepenny = 0
print(change)
while change >= 20:
    change = change - 20
    twentypounds + 1
print(twentypounds)

while change >= 10 and change < 20:
    change = change - 10
    tenpounds + 1
print(tenpounds)

while change > 10 and change >= 5:
    change = change - 5
    fivepounds + 1
print(fivepounds)

while change < 5 and change >= 2:
    change = change - 2
    twopounds + 1
print(twopounds)

while change < 2 and change >= 1:
    change = change - 1
    onepound + 1
print(onepound)

while change < 1 and change >= 0.5:
    change = change - 0.5
    fiftypennies + 1
print(fiftypennies)

while change < 0.5 and change >= 0.2:
    change = change - 0.2
    twentypennies + 1
print(twentypennies)

while change < 0.2 and change >= 0.1:
    change = change - 0.1
    tenpennies + 1
print(tenpennies)

while change  < 0.1 and change >= 0.05:
    change = change - 0.05
    fivepennies + 1
print(fivepennies)

while change < 0.05 and change >= 0.02:
    change = change - 0.02
    twopennies + 1
print(twopennies)

while change < 0.02 and change >= 0.01:
    change = change - 0.01
    onepennies + 1
print(onepenny)


print("The Change Value is now:", change, "  This is for debugging only")
twenty_pounds = twentypounds * 20
ten_pounds = tenpounds * 10
five_pounds = fivepounds * 5
two_pounds = twopounds * 2
one_pound = onepound * 1
fifty_pennies = (fiftypennies * 50) / 100
twenty_pennies = (twentypennies * 20) / 100
ten_pennies = (tenpennies * 10) / 100
five_pennies = (fivepennies * 5) / 100
two_pennies = (twopennies * 2) / 100
one_penny = (onepenny * 1) / 100
total_change = twenty_pounds + ten_pounds + five_pounds + two_pounds + one_pound + fifty_pennies + twenty_pennies + ten_pennies + five_pennies + two_pennies + one_penny
print("Your Total Change is:", total_change)

现在代码只打印: (变化是正确的) 0.0、0.0、0.0 等...

代码现在可以使用了,感谢您的回答!

==是比较 = 是一个赋值

你在应该使用 =

的地方使用了 ==

您的问题与 change >=10 and <20 有关。这没有意义,因为它没有指定应该与 20 进行比较的内容。如果将表达式完全写为 change >= 10 and change < 20,您的代码应该可以运行。或者,可以更简洁地写成 10 <= change < 20.