【发布时间】:2012-11-04 04:56:09
【问题描述】:
我无法使用下面的代码将字符串正确转换为整数。
我将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'
尝试在一个函数中完成所有操作具有相同的效果:
lang=[]
def chooseLang():
global lang
while lang !='1' and lang != '2':
print ('Select (1 or 2):')
lang=input()
return lang
ret=int(lang)
chooseLang()
c=2+lang
print (c)
我做错了什么?
【问题讨论】:
-
为什么一开始就以
lang作为一个空列表?你为什么要把它变成全球性的?在检查字符串是"1"还是"2"之后,调用int()怎么可能会出错?
标签: python string python-3.x int converter