我能';在python赋值中,我无法找出全局变量的错误
我的python学校作业有问题,我不知道我做错了什么。我要么得到一个未定义的全局名称,要么如果我改变周围的事物,就会得到不同的sythax错误。我希望有人能帮助我做错事 以下是分配详细信息的图像:我能';在python赋值中,我无法找出全局变量的错误,python,variables,global-variables,Python,Variables,Global Variables,我的python学校作业有问题,我不知道我做错了什么。我要么得到一个未定义的全局名称,要么如果我改变周围的事物,就会得到不同的sythax错误。我希望有人能帮助我做错事 以下是分配详细信息的图像: def main(): x=int(输入(“给我整数#1:”) y=int(输入(“给我整数#2:”) z=输入(“给我一个字符串:”) 打印(“最小:,最小(x,y)) 打印(“最大:”,最大(x,y)) 打印(“相等:”,相等(x,y)) 打印(“is_偶数:”,is_偶数(x)) 打印(“is
def main():
x=int(输入(“给我整数#1:”)
y=int(输入(“给我整数#2:”)
z=输入(“给我一个字符串:”)
打印(“最小:,最小(x,y))
打印(“最大:”,最大(x,y))
打印(“相等:”,相等(x,y))
打印(“is_偶数:”,is_偶数(x))
打印(“is_odd:”,is_odd(x))
打印(“格式美元:”,格式美元(x))
打印(“实验室等级:”,实验室等级(x))
打印(“is_Lucky:,is_Lucky(x))
打印(“is_lucky:”,is_lucky(x))
打印(“复数:,复数(z))
#1此函数将计算2个整数参数的最小值,并返回较小的参数
def最小值(num1,num2):
如果num1>=num2:返回num1
其他:返回num2
#2此函数将计算出最多2个整数参数,并返回较小的参数
def最大值(num1,num2):
如果num1=90:
返回“A”
如果等级>=80:
返回“B”
如果等级>=70:
返回“C”
如果等级>=60:
返回'D'
其他:
返回“F”
#8这将确定功能是否不正常
def不吉利(x):
如果x==4:
返回('True')
如果x==13:
返回('True')
如果x==7:
返回('True')
else:('False')
打印()
#9这将确定功能是否幸运
def是幸运的(x):
如果x==3:
返回('True')
如果x==4:
返回('True')
如果x==8:
返回('True')
如果x==7:
返回('True')
其他:
返回('False')
打印(“”)
#10该功能将多元化
def多重化(z):
如果不是z:
返回复数
打印(“”)
main()
您的是偶数()
而是奇数()
函数看起来是均匀奇数
嗯,那只是个玩笑。。很抱歉但是你正在使用两个不同的参数num1
,和num2
,而你正在使用一个变量x
被分配给一个未知变量甚至是,我不明白它在做什么??甚至从以下方面改变:
def is_even(num1,num2):
is_even = x
if x % 2 == 0: return ("True")
else: return ("False")
致:
为什么
- 您只需要一个输入
- 你不应该使用全局x
- 您不应该将is_偶数(函数)设置为值
是奇怪的,格式也有类似的问题。如果非要我猜的话,我会说你做的是一次编写所有10个函数,然后把整个程序搞乱,看看它是否有效。在头半个小时用你的头撞击它之后,你可能已经到了这样一个地步,你只是随机地改变一些事情,看看烟雾是否会奇迹般地消失
由于这似乎是一项非常基本的任务,我将不建议使用测试驱动开发之类的东西,但您可以通过采取更渐进的方法使您的生活更加轻松
首先,从main开始并运行它,以便所有函数调用都能正常工作而不会产生错误,例如:
def main():
x = int(input("Give me integer #1: "))
y = int(input("Give me integer #2: "))
z = input("Give me a string: ")
print("min:", min(x, y))
print("max:", max(x, y))
print("equal:", equal(x, y))
print("is_even:", is_even(x))
print("is_odd:", is_odd(x))
print("format_dollar:", format_dollar(x))
print("lab_grade:", lab_grade(x))
print("is_unlucky:", is_unlucky(x))
print("is_lucky:", is_lucky(x))
print("pluralize:", pluralize(z))
def min(x, y):
return x
def max(x, y):
return x
# Fill in all the other functions here in the same fashion.
main()
对所有函数执行相同的操作,只需返回传入的第一个参数。一旦你得到了它,你的代码运行时不会产生任何错误。逐个函数修复每个函数以返回正确的结果。让您的生活更加轻松的一个技巧是将main()黑客攻击为:
这样,您可以快速运行程序,而无需每次输入。一旦工作正常,就可以删除输入前面的注释,删除硬编码的值,并在main()不变的情况下将其提交
返回True/False时,应使用实际的布尔值True和False,而不是它们的字符串表示形式。另外,由于赋值特别称为elif,您可能应该使用if/elif/else语句,而不是像代码那样使用一堆谨慎的if
#9 This will determine if the function is lucky
# x = number to test
# returns True if number is lucky, else False
def is_lucky(x):
if x == 3:
return True
elif x == 4:
return True
elif x == 8:
return True
elif x == 7:
return True
else:
return False
首先,当函数获取参数num1和num2时,它们试图使用名为x
的变量,但这是许多格式不正确的代码,希望有人能够通过。一个错误是,在main()
中,您试图调用尚未声明的函数。您应该在调用函数之前声明它们,所以所有这些print语句都应该放在函数定义下面。您需要缩进属于main()
函数一部分的所有行。当你运行程序,它要求一个字符串,一定要把你输入的任何引号。您的even()
函数定义为接受两个数字,但您只传递一个。您的第一个函数--min
--不返回最小值。我建议您在学习Python语法时一个函数一个函数地工作,而不是一次完成所有的工作。@Ashwini Chaudhary:在尚未定义的函数定义中调用函数是可以的。谢谢您!现在我有一些事情要担心,但我仍然得到我的全局变量错误。你能找到原因吗?谢谢:)
def main():
x = int(input("Give me integer #1: "))
y = int(input("Give me integer #2: "))
z = input("Give me a string: ")
print("min:", min(x, y))
print("max:", max(x, y))
print("equal:", equal(x, y))
print("is_even:", is_even(x))
print("is_odd:", is_odd(x))
print("format_dollar:", format_dollar(x))
print("lab_grade:", lab_grade(x))
print("is_unlucky:", is_unlucky(x))
print("is_lucky:", is_lucky(x))
print("pluralize:", pluralize(z))
def min(x, y):
return x
def max(x, y):
return x
# Fill in all the other functions here in the same fashion.
main()
def main():
#x = int(input("Give me integer #1: "))
#y = int(input("Give me integer #2: "))
#z = input("Give me a string: ")
x = 5
y = 8
z = 'foobar'
print("min:", min(x, y))
print("max:", max(x, y))
print("equal:", equal(x, y))
print("is_even:", is_even(x))
print("is_odd:", is_odd(x))
print("format_dollar:", format_dollar(x))
print("lab_grade:", lab_grade(x))
print("is_unlucky:", is_unlucky(x))
print("is_lucky:", is_lucky(x))
print("pluralize:", pluralize(z))
#9 This will determine if the function is lucky
# x = number to test
# returns True if number is lucky, else False
def is_lucky(x):
if x == 3:
return True
elif x == 4:
return True
elif x == 8:
return True
elif x == 7:
return True
else:
return False