'而'当上面输入的代码清除某些输入时,循环运行

时间:2015-03-31 00:38:50

标签: python while-loop

我无法弄清楚为什么我的代码没有除去任何浮点数并让它们在while循环中运行(然后搞砸了代码)。我可以做些什么来保护'while循环' - 只要在输入中放入浮点数就不会运行它?

这是我的代码:

if not a.isdigit() and int(a) < 0 and not b.isdigit() and int(b) < 0 :
     print("Invalid input")     
 else :
     count = 1
     while count < int(b) :
         c = count * int(a)
         print('{} * {} = {}'.format(count, a, c))
         count = count + 1
     c = int(a) * int(b)
     print('{} * {} = {}'.format(b, a, c))

2 个答案:

答案 0 :(得分:1)

您可能需要将这些and更改为or,以便任何条件(a.isdigit()int(a) < 0等)为真,都可以避免循环。

答案 1 :(得分:0)

预先检查b是否有小数:

if round(b)==b: