Python3我做错什么了?

2024-06-16 13:59:57 发布

您现在位置:Python中文网/ 问答频道 /正文

今天开始编程。我真的很想明年在我的学位上领先一步。你知道吗

我用纽博斯顿自学,到目前为止还可以。 不过,这是一段非常简单的代码。你知道吗

我要留言说“什么是1+1” 用户输入一个anwser,如果是2,则打印一条正确的消息。如果不是,则打印不正确。你知道吗

input ("What is 1 + 1\n")
if input is 2:
    print ("correct")
else:
    print("incorrect")

C:\Python31\python.exe "C:/Users/JoeNa/Desktop/Python Study/Experimenting.py"
What is 1 + 1

incorrect

Process finished with exit code 0

Tags: 代码用户消息inputifis编程what
3条回答

有几件事:

  1. input()是一个函数,它将用户输入从键盘读取为字符串
  2. 调用input(),但从不保存它返回给变量的值
  3. 你可以用“is”而不是“=”(尽管在某些情况下它们可能是等价的,检查一下它们之间的差异,并了解何时使用它们)
  4. 进行比较时,请确保不要将苹果与橙子进行比较(带int的字符串)
my_val = int(input("What is 1 + 1\n"))

if my_val == 2:
    print ("correct")
else:
    print("incorrect")

input返回一个字符串,因此必须将其强制转换为int。你知道吗

另外,不要用Python中内置的关键字或函数来命名变量,因为如果以后要在代码中使用它们,可能会重写它们并失去对它们的访问权限。考虑一下:

>>> input = 'hello'
>>> s = input('enter your name')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable
>>> 

不能在程序中再次调用input函数,因为已将input设置为字符串,这就是Python解释器出现此错误的原因。你知道吗

ZetCode Python website在Python中有一个关键字列表。你知道吗

is用于按对象的标识比较对象,而==则按对象的值比较两个对象。您必须理解这些,因为在交换它们时可能会导致复杂的错误。你知道吗

考虑一下:

>>> a = [1,2]
>>> b = [1,2]
>>> a is b
False
>>> a == b
True

>>> id(a)
140109265441288
>>> id(b)
140109265454472
>>> 

ab是两个不同的对象,因此它们的同一性不同,但它们的值相等。你知道吗

写如下:

result = input ("What is 1 + 1\n")
if int(result) == 2:
    print("correct")
else:
    print("incorrect")

如果要处理input()的结果,必须将其存储在新变量中。之后,如果希望它始终是整数,请使用int关键字强制转换它。你知道吗

另外,尽量不要使用与input()关键字相同的变量名。你知道吗

另外,作为补充说明,在本例中使用==而不是is。我建议你仔细阅读is关键字和equals运算符的用法。你知道吗

相关问题 更多 >