我需要在一个序列中不断循环,直到给出一个数字而不是Python中的一个字母[重复]

6qftjkof  于 2023-04-04  发布在  Python
关注(0)|答案(1)|浏览(83)

此问题在此处已有答案

Asking the user for input until they give a valid response(22个答案)
9个月前关闭。
在编写代码方面还是相当新的。我已经写了一个Python 3. 10. 5程序来计算家庭侧线。只要只输入数字,程序就能很好地工作。我需要代码来检查字母而不是数字,并不断要求输入数字,直到输入数字。我不能让任何类型的循环工作。我已经搜索了Python文档和这个网站,但是找不到任何看起来有效的东西。这就是我要开始的:

WallFactor = input("How many Walls? ")
    print("Number of Walls: ", WallFactor)

    while int(CurrentWallNumber) <= int(WallFactor):
        print("Current Wall Number:", CurrentWallNumber)
        HeightFeet = input("How many feet high? ")
        HeightInches = input("How many extra inches? ")
        TotHFtIn = int(HeightFeet) * 12  #Number of HeightFeet in inches
        TotHInches = int(TotHFtIn) + int(HeightInches)  #Total Height in inches

当我输入字母“i”时,我得到以下消息:

How many Walls? i
    Number of Walls:  i
    Traceback (most recent call last):
      File "C:\Users\bible\AppData\Local\Programs\Python\Python310\SidingCalculator.py", 
    line 16, in <module>
        while int(CurrentWallNumber) <= int(WallFactor):
    ValueError: invalid literal for int() with base 10: 'i'

我想要一个代码,请,我可以添加到每个问题检查一个数字,不断要求一个数字,直到一个数字输入。谢谢

yacmzcpb

yacmzcpb1#

嗨,朋友,恭喜你开始了这段旅程!你可以做一个简单的尝试:

try:
   TotHFtIn = int(HeightFeet) * 12  #Number of HeightFeet in inches
   TotHInches = int(TotHFtIn) + int(HeightInches)  #Total Height in inches
except ValueError:
   print "Wrong input, please only use numbers"

这很简单,有更好的解决方案,但它的工作。一个很好的后续阅读可能是谷歌搜索:“Python将字符串转换为int”

相关问题