鱼C论坛

 找回密码
 立即注册
查看: 717|回复: 6

[已解决]想问个非常弱智的问题

[复制链接]
发表于 2018-10-19 17:14:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
a = input
b = int(a)
我才学没多久, 0 基础有很多弱智问题。
我知道input int是什么意思。
为什么有时候能直接print(a) 有时候又显示报错呢。也不知道我问的问题有没有毛病,还是自己没搞清楚。
那位大哥能帮忙解释一下,a = input,b = int(a)。这个两句话到底代表了什么。
最佳答案
2018-10-19 19:56:28

你的种种问题是因为 a = input,没有调用的情况是地址
a = input(),后面的东西就对啦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-19 17:18:51 | 显示全部楼层
a=input表示a等价于input函数地址

但是我感觉你想说的是a=input()
a就是input函数你输入的结果字符串
如果a是整数,
b=int(a)
表示将字符串a转变成数字b
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-19 17:20:23 | 显示全部楼层
  1. >>> a = input
  2. >>> a
  3. <built-in function input>
  4. >>> print(a)
  5. <built-in function input>
  6. >>> b = int(a)
  7. Traceback (most recent call last):
  8.   File "<pyshell#3>", line 1, in <module>
  9.     b = int(a)
  10. TypeError: int() argument must be a string, a bytes-like object or a number, not 'builtin_function_or_method'
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-19 17:22:32 | 显示全部楼层
a=input是把input函数赋值给a,这样a()就会产生input()函数的效果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-19 18:31:27 | 显示全部楼层
input 是输入的意思,使用input()函数时,用户输入一个数据,函数会把输入的数据以字符串的形式储存起来。

  1. >>> sam_num = input("Enter a number or character: ")
  2. Enter a number or character: 1
  3. >>> sam_num
  4. '1'
  5. >>> sam_num2 = input("Enter a number or character: ")
  6. Enter a number or character: a
  7. >>> sam_num2
  8. 'a'
  9. >>>
复制代码


而 int 则是整数类型 的意思,是一种数据类型,像是 1、34、5842、-1 这些不带小数点的整数都属于 int 类型。

  1. >>> a = 1
  2. >>> b = 34
  3. >>> c = 5842
  4. >>> d = -1
  5. >>> type(a)
  6. <class 'int'>
  7. >>> type(b)
  8. <class 'int'>
  9. >>> type(c)
  10. <class 'int'>
  11. >>> type(d)
  12. <class 'int'>
  13. >>>
复制代码


同时,int()函数可以会尝试将传入函数的数据转换为整数类型的数据。

  1. >>> a = '50'
  2. >>> int(a) # 只有字符串内容为数字才可以被成功转换,否则报错
  3. 50
  4. >>> b = 'I love fishc'
  5. >>> int(b)
  6. Traceback (most recent call last):
  7.   File "<pyshell#31>", line 1, in <module>
  8.     int(b)
  9. ValueError: invalid literal for int() with base 10: 'I love fishc'
  10. >>>
复制代码


知道了这些之后,我们就能知道你的代码实现的什么功能了。


  1. >>> a = input # 这里你将input的功能传输给了变量 a,也即:a变成了a()函数,它的功能和input()一样
  2. >>> b = int(a("Enter a number or character: ")) # 执行代码,输入一个数字或者字母,并且以字符串的形式保存,int()会尝试将输入的数据转换为整数类型
  3. Enter a number or character: 1 # 输入1,可以被转换
  4. >>> b
  5. 1
  6. >>> b = int(a("Enter a number or character: "))
  7. Enter a number or character: a # 输入字母a,无法被转换
  8. Traceback (most recent call last):
  9.   File "<pyshell#27>", line 1, in <module>
  10.     b = int(a("Enter a number or character: "))
  11. ValueError: invalid literal for int() with base 10: 'a'
  12. >>>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-19 19:56:28 | 显示全部楼层    本楼为最佳答案   

你的种种问题是因为 a = input,没有调用的情况是地址
a = input(),后面的东西就对啦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-19 20:04:47 | 显示全部楼层
Hunter_Hunry 发表于 2018-10-19 18:31
input 是输入的意思,使用input()函数时,用户输入一个数据,函数会把输入的数据以字符串的形式储存起来。
...

然后 python 的 int() 只能针对数字(二进制、八进制、十进制、十六进制、浮点数),不像 C 语言的格式化输出,认二进制
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 18:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表