Python用raw_input获取键盘输入报错怎么办?

在学习python的时候使用raw_input来获取键盘输入,结果出现了下面的报错:

Traceback (most recent call last):
  File "******\***.py", line 19, in <module>
    j = raw_input("aa")
NameError: name 'raw_input' is not defined

遇到这样的问题让我束手无策,翻阅了大量的资料发现是环境的问题,原来Python从3.0开始抛弃了raw_input这个函数,input函数取而代之,代码如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

def sum(n):
    if (n == 1):
        s=1
    else:
        s = n * sum(n-1)
    return s

i = input("请输入:")
j = sum(i)
print (j)

看了官方的手册,写出了上面的代码,结果又是报错,报错代码如下:

Traceback (most recent call last):
  File "C:\Users\Administrator\AppData\Local\Programs\Python\python38-32\ding\1.py", line 16, in <module>
    j = sum(b)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\ding\1.py", line 9, in sum
    s = n * sum(n-1)
TypeError: unsupported operand type(s) for -: 'str' and 'int'

无奈之下,继续看官方手册对input的介绍,原来官方对input的解释是这样的:

 input([prompt]) 函数和 raw_input([prompt]) 函数基本类似,但是 input 可以接收一个Python表达式作为输入,并将运算结果返回。 input函数返回的是字符串。

说input返回的是一个字符串,而不是int型的,因此才会报错,知道这个问题就好办了,咱们把获取的字符串转换成int型问题就解决了,代码如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-


def sum(n):
    if (n == 1):
        s=1
    else:
        s = n * sum(n-1)
    return s


i = input("请输入:")
b = int(i)
j = sum(b)
print (j)

到这里,问题彻底解决!总结:在Python环境中,读取键盘输入的函数有raw_input和input两个,在python3里面,函数raw_input已经被丢弃,而input函数从键盘中读取的字符默认为string型。因此读取键盘输入的数据需要根据你的实际环境来写,如果用input来获取字符,记得转换类型!

资源下载
下载价格10 积分
此资源购买后10天内可下载。1、如果您遇到版本没有及时更新,或者无法下载(请勿重复支付)等问题,请联系客服QQ:125252828 微信号:dobunkan
2、注意:本站资源永久免费更新,标题带“已汉化”字样的属于汉化过的!!!
3、如果您购买前没有注册账户,请自行保存网盘链接,方便后续下载更新
4、1积分等于1元。购买单个资源点立即支付即可下载,无需注册会员。
5、本站支持免登陆,点立即支付,支付成功就就可以自动下载文件了(因部分插件和模板没来得及汉化,如果需要汉化版,请先咨询清楚再买!)。
6、如果不会安装的,或者不会使用的以及二次开发需求,费用另外计算,详情请咨询客服!
7、因程序具备可复制传播性质,所以,一经兑换,不退还积分,购买时请提前知晓!
常见问题
Wordpress模板插件上传安装提示错误怎么办?
本站在打包插件或者模板的时候,一般会将官方文档、官方申明、已经其他文件一起打包,因此,大部分插件模板在安装前需要解压缩。
购买后无法下载或者提取码错误怎么办?
请联系客服QQ:125252828 或者微信:dobunkan,由于骚扰信息过多,加好友时请说明原由!
小白建站啥都不会怎么办?
请与客服联系,沟通具体的技术支持。由于搭建环境、调试程序需要花费一些时间,可能会收取一些费用。
怎样催促站长更新?
直接微信或者QQ联系本站客服,提供最新版本号以及软件名称,客服会在第一时间更新,如果超过2-3年未更新的请先联系站长后再确认是否需要下载。
为什么打开链接看不到最新版本?
因为网盘默认是按名称排序,最新版本不一定会排在第一个,请打开链接后点击右上角的“修改日期”,这时候更新列表就会按更新日期排序了。
原文链接:https://www.dobunkan.com/server/173,转载请注明出处。
0

评论0

请先
显示验证码
没有账号?注册  忘记密码?

社交账号快速登录

学课技术网欢迎您的加入!