python3键盘输入_细究Python键盘输入

本文详细探讨了Python2和Python3中`raw_input`与`input`的区别,指出在Python3中`raw_input`已被弃用,`input`功能等同于之前的`raw_input`。文章还介绍了如何使用`input`函数接收一维和二维数组,包括利用正则表达式处理用户输入的二维数组。此外,文章建议在一般情况下使用`input`与用户交互。
摘要由CSDN通过智能技术生成

本文介绍了raw_input 和 input在python2和python3上的区别,以及如何利用正则表达式和input键盘输入一维数组和二维数组。更多见:李飞阳 http://feiyang.li/

raw_input 和 input

python2中

raw_input_A = raw_input("raw_input: ")

type(raw_input_A)

可以看到输出的是 str

input_A = input("Input: ") #不能输入字母

type(raw_input_A)

可以看到输出的是 int,并且我们发现,input根本不能输入字母,会直接报NameError: name 'abc' is not defined,提示没有定义。

Python2报错

查看 Built-in Functions ,得知:

input([prompt]) Equivalent to eval(raw_input(prompt))

input() 本质上还是使用 raw_input() 来实现的,只是调用完 raw_input() 之后再调用 eval() 函数,所以,你甚至可以将表达式作为 input() 的参数,并且它会计算表达式的值并返回它。

不过在 Built-in Functions 里有一句话是这样写的:Consider using the raw_input() function for general input from users.

除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互。

python3中

因为刚才说的那个原因,input其实没有什么必要,所以就被改进了。

简单来说,raw_input没有了,只剩下input。现在这个input就是之前那个raw_input。

If the prompt argument is present, it is written to standard output without a trailing newline. The function then reads a line from input, converts it to a string (stripping a trailing newline), and returns that. When EOF is read, EOFError is raised.

简单说,返回的内容都是str,括号里边的prompt写什么,就会当做提示内容输出。比如底下的那个 -->

>>> s = input('--> ')

--> Monty Python's Flying Circus

>>> s

"Monty Python's Flying Circus"

因为我一般都是用python3,接下来的内容都是以3为准。

Python输入数组

一维数组

使用int()进行强制类型转型

当输入内容不为数字时,不能转型,发生except跳出循环。

先声明data是一个list,将input_A一个个+进去。

data = []

while True:

try:

input_A = int(input("Input: "))

data +=[input_A]

except:

break

data

type(data)

输入数组

在以上的基础上,我们可以用python输入二维数组

python输入二维数组

正则表达式会利用非数字的字符,进行切割,因此数字之间插入什么都无所谓。

import re

data2D = []

while True:

userInput = input('Input:') # 输入数组,用空格隔开即可

info = re.split(r'[\D]',userInput)#正则表达式分割

data = []# 定义一维数组

try:

for number in info:

data+=[int(number)] # 一维数组加入数字

data2D+=[data] #一维数组加入到二维中去

except:

break;

data2D

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值