Python 将字符串输入转换为整数
我无法使用下面的代码将字符串正确转换为整数 我将Python 将字符串输入转换为整数,python,string,python-3.x,int,converter,Python,String,Python 3.x,Int,Converter,我无法使用下面的代码将字符串正确转换为整数 我将lang输入作为字符串。我想接受任何输入,因为如果我将输入限制为整数,那么用户输入的任何字母都将导致错误 此代码: lang=[] def chooseLang(): global lang while lang !='1' and lang != '2': print ('Select (1 or 2):') lang=input() return lang def convertStr(
lang
输入作为字符串。我想接受任何输入,因为如果我将输入限制为整数,那么用户输入的任何字母都将导致错误
此代码:
lang=[]
def chooseLang():
global lang
while lang !='1' and lang != '2':
print ('Select (1 or 2):')
lang=input()
return lang
def convertStr(lang):
ret=int(lang)
return ret
#-----------------------Program-----------------------
chooseLang()
convertStr(lang)
c=2+lang
print (c)
。。。导致此错误的原因:
in <module> c=2+lang
TypeError: unsupported operand type(s) for +: 'int' and 'str'
我做错了什么?在第一个示例中,您忘记使用convertStr()函数返回的值:
lang = convertStr(lang)
在第二个示例中,ret=int(lang)
由于前面的return lang
而无法访问
为什么一开始就把
lang
作为一个空列表?你为什么要让它成为一个全球性的?在检查字符串是否为“1”
或“2”
后,调用int()
如何可能给出错误?很好的替代方法,此方法的thx!
lang = convertStr(lang)
def choose_lang():
lang = None # NOTE: this `lang` has nothing to do with the global `lang`
while True:
try:
lang = int(input("select (1 or 2)"))
except ValueError:
pass
if lang not in [1, 2]:
print("\ntry again")
else:
break
return lang
lang = choose_lang()
c = 2 + lang
print(c)