我正在尝试写一些东西来检查整数(z)是否在x和y的范围内,x是最小数,y是最大数.我这样做是通过检查z是否小于最小数量或大于最大数量.如果其中任何一个为真,则返回无效,否则确认它.检查值的最大值,最小值和数量由raw_input确定.这是代码:
int(x = raw_input('x:\n')) #max number
int(y = raw_input('y:\n')) #min number
int(z = raw_input('z:\n')) #number to check.
if z < y:
print 'invalid.'
elif z > x :
print 'invalid.'
Run Code Online (Sandbox Code Playgroud)
我可以输入x值,但是当我尝试输入y值时,我收到此错误:
Traceback (most recent call last):
File "C:/Python27/random/bark", line 2, in <module>
int(y = raw_input('y:\n')) #min number
TypeError: 'y' is an invalid keyword argument for this function
Run Code Online (Sandbox Code Playgroud)
我不知道我做错了什么,我在其他地方没有回答就问过.
Lev*_*von 10
代替这个:
int(x = raw_input('x:\n')) #max number
Run Code Online (Sandbox Code Playgroud)
试试这个:
x = int(raw_input('x:\n')) #max number
Run Code Online (Sandbox Code Playgroud)
类似于其他输入语句.
内置Python函数raw_input() "从输入读取一行,将其转换为字符串".为了使用输入作为整数,您需要在int()函数的帮助下转换为stringto int,该函数将"字符串或数字转换为普通整数".从你的代码看起来你有基本的想法,但你的语法有点纠结.
与C不同,Python赋值语句不能用作参数中的表达式.
例如,以下只是不合法,并将导致SyntaxError:
if name = name + 1:
pass
Run Code Online (Sandbox Code Playgroud)
在这种情况下TypeError,您接收a 而不是a 的原因SyntaxError是因为Python的关键字参数功能.Python允许您将命名参数传递给表单中的函数:foo(arg1=0, second_argument="hello").因此,口译员认为这就是你要做的事情.
您收到的错误消息是Python解释器认为您正在传递关键字参数的结果int().int()当然,不会将关键字参数"x"(或"y"或"z")视为错误.这是你应该做的事情:
x = int(raw_input("x:\n"))
y = int(raw_input("y:\n"))
z = int(raw_input("z:\n"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15047 次 |
| 最近记录: |