见招拆招小冬喜 发表于 2020-9-30 11:00:50

变量赋值问题

在第一行复制的时候input后面为什么一定要加上字符串才不出错。如果我不需要if语句前有文字,只想直接输入数值来看结果,为什么不能省略?
以下代码只有标红部分不一样:


可运行代码:
temp=input('come on!')
guess=int(temp)
if guess==8:
    print('good job!')
else:
    if guess>8:
      print('it\'s too big')
    else:
      print('samll! too small!')
print('game over~')

不可运行代码:
temp=input
guess=int(temp)
if guess==8:
    print('good job!')
else:
    if guess>8:
      print('it\'s too big')
    else:
      print('samll! too small!')
print('game over~')


报错提示:
======================== RESTART: d:/我的文档/桌面/04 改进游戏.py ========================
Traceback (most recent call last):
File "d:/我的文档/桌面/04 改进游戏.py", line 2, in <module>
    guess=int(temp)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'builtin_function_or_method'

请各位大佬指教~

疾风怪盗 发表于 2020-9-30 11:04:08

input()是个函数,是个动词,你只用input那就是函数名,是名词了
input('提示'),里面的字符串可写可不写,是个提示,不写,也能运行,但是括号必须要加
int()是强制转换为数值,你传入函数名,当然不能转了,就报错了

LuLD 发表于 2020-9-30 11:05:31

input():函数接受一个标准输入数据,返回为 string 类型。

如果 括号里 不想写东西,直接   temp = input()就可以了,因为 input()是个函数,括号是不能省略的

张先僧 发表于 2020-9-30 11:05:42

input()   是内置函数这是输入的   

见招拆招小冬喜 发表于 2020-9-30 11:14:06

疾风怪盗 发表于 2020-9-30 11:04
input()是个函数,是个动词,你只用input那就是函数名,是名词了
input('提示'),里面的字符串可写可不写 ...

非常感谢~我悟了哈哈
页: [1]
查看完整版本: 变量赋值问题