函数中无法使用input()么
0.>>> x = 1
>>> def q():
x = input('请输入:')
>>> q()
请输入:2
>>> x
1
为什么x不发生改变
1.
>>> def judge():
while True:
if int(num) != 11:
num = input('长度不对重新输入:')
else:
break
>>> num = 11
>>> judge()
Traceback (most recent call last):
File "<pyshell#342>", line 1, in <module>
judge()
File "<pyshell#340>", line 3, in judge
if int(num) != 11:
UnboundLocalError: local variable 'num' referenced before assignment
>>> num = 13
>>> judge()
Traceback (most recent call last):
File "<pyshell#344>", line 1, in <module>
judge()
File "<pyshell#340>", line 3, in judge
if int(num) != 11:
UnboundLocalError: local variable 'num' referenced before assignment
请问出错在哪?
感谢各位前辈{:5_91:}
第一个问题:要声明全局变量才可以改变全局变量
def q():
global x
x = input('请输入:')
第二个问题:在赋值之前 num 并不存在,而你在赋值之前用到了 num 来判断,你应该给 num 赋初值
def judge():
num = 0
while True:
if int(num) != 11:
num = input('长度不对重新输入:')
else:
break
isdkz 发表于 2022-3-27 22:27
第一个问题:要声明全局变量才可以改变全局变量
def q():
>>> num = 0
>>> def judge():
global num
while True:
if int(num) != 11:
num = input('长度不对重新输入:')
else:
break
我二者结合一下,您看对么 李二蛋 发表于 2022-3-28 10:43
>>> num = 0
>>> def judge():
global num
语法没有问题,至于逻辑有没有问题得看你的需求 isdkz 发表于 2022-3-28 10:45
语法没有问题,至于逻辑有没有问题得看你的需求
>>> def judge(x):
num = x
while True:
if int(num) != 11:
num = input('长度不对重新输入:')
else:
break
前辈我这样写是不是逻辑就通顺多了 李二蛋 发表于 2022-3-28 10:49
>>> def judge(x):
num = x
while True:
判断长度为什么用 int? isdkz 发表于 2022-3-28 11:00
判断长度为什么用 int?
您说的对哈
页:
[1]