我是编程新手.我有一些python编码的问题(使用def函数).
所以基本上代码必须给出2个数字中较小的数字.
问题:编写代码以执行以下任务:
所以我有用户输入而不是调用函数并在变量中添加值.
这是我的代码的样子:
def smaller_num(x,y):
if x>y:
number= y
else:
number= x
return number
smaller_num(x= input("Enter first number:-") ,y= input("Enter second number:-"))
print("The smaller number between " + str(x) + " and " + str(y) + " is " + str(smaller_num))
Run Code Online (Sandbox Code Playgroud)
我该如何纠正?目前它不起作用,因为没有定义"x".但我觉得我在def函数和输入函数中都清楚地定义了它们.那么我该如何解决这个问题呢?
感谢那些回答这个问题的人.
你从来没有真正定义x和y全球.您只在功能中定义了它def smaller_num(x, y).
当你这样做smaller_num(x= input("Enter first number:-") ,y= input("Enter second number:-"))
,你是不是创建变量叫x并且y,你只是你的函数制作参数.
为了解决你的代码,创建变量x和y你打电话给你的函数之前:
def smaller_num(x, y): ## Can be rephrased to def smaller_num(x, y):
if x > y: ## if x > y:
number = y ## return y
else: ## else:
number = x ## return x
return number
x = input("Enter first number:-")
y = input("Enter second number:-")
result = smaller_num(x, y)
print("The smaller number between " + str(x) + " and " + str(y) + " is " + str(result))
Run Code Online (Sandbox Code Playgroud)
您的代码无法工作的另一个原因是您没有将函数的返回值分配回变量.当你return从函数中获取某些东西时,再次调用函数时,你需要将值赋给变量,就像我有:result = smaller_num(x, y).
当您调用函数时,您从未将值赋给变量,因此它已被浪费.
另外,您使用的是Python 3还是2.7?在python 3中使用input()会返回一个字符串,并将其转换为整数,你可以调用int()该input()函数.