鱼C论坛

 找回密码
 立即注册
查看: 3638|回复: 10

[已解决]Python输入问题

[复制链接]
发表于 2022-8-4 17:08:43 | 显示全部楼层 |阅读模式

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

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

x
python输入的时候,n=input(),什么时候写成int(input()),什么时候用eval(input),什么时候不用加直接是n=input(),做题的时候运行总是报错,然后改一下那个int、eval就好了,但是不清楚为什么要改
最佳答案
2022-8-4 17:23:47
本帖最后由 临时号 于 2022-8-4 17:25 编辑

input()函数会返回一个字符串类型的值
但是,有时候我们像让程序读到的是一个整数类型的值,可input()函数读到的是字符串类型的,所以我们需要将input()函数读到的值强制转换为整数,所以用到了int()函数,自然写成了int(input())
而eval()函数的作用是执行一个字符串表达式,这个不太好讲,举个例子你就明白了
command = eval(input("请输入命令: "))
程序执行结果
D:\command\Python>python test.py
请输入命令: print("Hello, World!")
Hello, World!

input函数详解->https://www.runoob.com/python3/python3-func-input.html
int函数详解->https://www.runoob.com/python/python-func-int.html
eval函数详解->https://www.runoob.com/python/python-func-eval.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-4 17:13:48 | 显示全部楼层
eval('input()') 就等于 input()
所以没有必要

至于input返回后用不用int,需要看具体需求
例如语句 n=intpu() 输入8
不int整形的话 n 就是 '8' 是字符串!
int整形后 n 就是 8 是个整数!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-4 17:18:37 | 显示全部楼层
青出于蓝 发表于 2022-8-4 17:13
eval('input()') 就等于 input()
所以没有必要

emm意思是输入的时候不用加eval吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-4 17:23:47 | 显示全部楼层    本楼为最佳答案   
本帖最后由 临时号 于 2022-8-4 17:25 编辑

input()函数会返回一个字符串类型的值
但是,有时候我们像让程序读到的是一个整数类型的值,可input()函数读到的是字符串类型的,所以我们需要将input()函数读到的值强制转换为整数,所以用到了int()函数,自然写成了int(input())
而eval()函数的作用是执行一个字符串表达式,这个不太好讲,举个例子你就明白了
command = eval(input("请输入命令: "))
程序执行结果
D:\command\Python>python test.py
请输入命令: print("Hello, World!")
Hello, World!

input函数详解->https://www.runoob.com/python3/python3-func-input.html
int函数详解->https://www.runoob.com/python/python-func-int.html
eval函数详解->https://www.runoob.com/python/python-func-eval.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-4 17:25:20 | 显示全部楼层
努力学Python的 发表于 2022-8-4 17:18
emm意思是输入的时候不用加eval吗

5#正解
考虑不周到了,eval函数也是有作用的...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-4 17:33:51 | 显示全部楼层
临时号 发表于 2022-8-4 17:23
input()函数会返回一个字符串类型的值
但是,有时候我们像让程序读到的是一个整数类型的值,可input()函数读 ...

我刚才试了一下去掉eval,然后再写print(“hollow,world”),发现打印不出来诶,所以eval在这的意思是执行print这个表达式吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-4 17:33:53 | 显示全部楼层
一般eval()函数新鱼油比较经常用到的地方应该是这个程序
num = int(input("请输入一个数:"))

if num > 10:
    print(f"{num}比10大")
elif num < 10:
    print(f"{num}比10小")
else:
    print(f"{num}就是10")
可是这个程序要是输入小数就会报错,这个时候就可以用eval()
num = eval(input("请输入一个数:"))

if num > 10:
    print(f"{num}比10大")
elif num < 10:
    print(f"{num}比10小")
else:
    print(f"{num}就是10")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-4 17:34:43 | 显示全部楼层
努力学Python的 发表于 2022-8-4 17:33
我刚才试了一下去掉eval,然后再写print(“hollow,world”),发现打印不出来诶,所以eval在这的意思是 ...

是的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-4 17:34:49 | 显示全部楼层
努力学Python的 发表于 2022-8-4 17:18
emm意思是输入的时候不用加eval吗

谢谢哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-4 17:37:50 | 显示全部楼层
青出于蓝 发表于 2022-8-4 17:25
5#正解
考虑不周到了,eval函数也是有作用的...

嗯嗯,我看答案的时候它有的加eval就对然后不加就不对,有点不明白,不过还是谢谢你帮我解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-4 17:45:09 | 显示全部楼层
临时号 发表于 2022-8-4 17:33
一般eval()函数新鱼油比较经常用到的地方应该是这个程序

可是这个程序要是输入小数就会报错,这个时候就 ...

谢谢,我刚看了一下书,您帮我举得这个例子是它的其中一个功能,怪不得我搞混了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 20:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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