Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将字符串输入转换为整数_Python_String_Python 3.x_Int_Converter - Fatal编程技术网

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)