文章目录
- 1. input函数知识回顾
- 2. input常犯错误解析
- 3. 用函数转换从终端输入的数据
- 3.1 输入的数为整数,则用int转换为整数
- 3.2 输入的数为浮点数,则用float转换为浮点数
- 3.3 不考虑输入的数据类型,则用eval函数转换
- 4. 变量的多种赋值方式
- 4.1 一个变量存储一个数值
- 4.2 多个变量存储多个数值
1. input函数知识回顾
input[ˈɪnpʊt]输入,投入。
【功能】
input函数可以提示并接收用户输入的内容,将所有的输入内容按照字符串进行处理,并返回一个字符串。
【语法】
input(prompt)
【参数说明】
prompt[prɒmpt]:提示。
prompt:可选参数,表示提示信息。
2. input常犯错误解析
input 函数的作用是从电脑终端即用键盘向程序输入内容。
【错误代码示例】
weight = int(input('50'))
height = float(input('1.68'))
bmi = weight/(height**2)
print(bmi)
关于input
函数我收到了很多小伙伴的提问,基本错误都是和上面的代码段的错误相同。
错误原因是大家不理解从终端输入的意思,直接将我们要从终端输入的数据作为input函数的提示语放在input函数里。
写上面代码的小伙伴想表达的意思是输入体重50
,身高1.68
,然后让程序计算输出bmi
。
大家要注意input函数引号中的内容仅作为输入提示语言,它不是我们要输入的数值。
我们要输入的数值是不会在代码段中看到的,它是运行代码后从键盘中输入的。
修改上面的代码如下:
weight = int(input("请输入您的体重:"))
height = float(input("请输入您的身高:"))
bmi = weight/(height**2)
print(bmi)
我用的是vscode编辑器,新建一个84.py
文件,在该py文件中运行上述代码:
我如果在py文件中运行上述代码,则终端在程序的最下方。
运行后,下方会有一个中文提示请输入您的体重:
在这个提示后输入您想输入的数值,这里我输入的数值是50
。
回车后,程序会给出第2句中文提示请输入您的身高
,在该提示后输入您要输入的身高数值即可。
weight = int(input("请输入您的体重:"))
input
函数中的"请输入您的体重:"
仅仅是提示语。
引号里有什么提示语句程序终端就会提示什么。
如果引号里没有提示,则终端也不会有提示语句,你直接输入数值即可。
你如果是在vscode编辑器中的ipynb文件中运行代码,则输入提示框在最上方。
3. 用函数转换从终端输入的数据
input函数接收的数据是以字符串类型进行存储的。
如果终端输入的数据需要参与算术运算,我们要转换其数据类型。
3.1 输入的数为整数,则用int转换为整数
weight = int(input("请输入您的体重:"))
print(weight)
print(type(weight))
【终端输出】
50
<class 'int'>
我在终端输入的是50
,50
是整数,如果我需要的就是整数,则用int
将str
类型的数据转换为整数。
3.2 输入的数为浮点数,则用float转换为浮点数
height = float(input("请输入您的身高:"))
print(height)
print(type(height))
【终端输出】
1.68
<class 'float'>
我在终端输入的是1.68
,1.68
是浮点数,如果我需要的就是浮点数,则用float
将str
类型的数据转换为浮点数。
3.3 不考虑输入的数据类型,则用eval函数转换
如果我不想考虑终端输入的数据类型,输入什么类型的数据,就转换成什么类型的数据,这种情况下直接使用eval函数即可。
【eval函数功能】
eval函数的功能就是脱去字符串的引号。
-
如果eval函数的参数是运算表达式,那输出该表达式的计算结果。
-
如果eval函数的参数仅仅是一个数值的字符串,那eval的作用是脱去字符串的引号,直接输出该数值。整数就输出整数,浮点数就输出浮点数。
weight = eval(input("请输入您的体重:"))
height = eval(input("请输入您的身高:"))
print(weight)
print("weight的数据类型为:", type(weight))
print(height)
print("height的数据类型为:",type(height))
【终端输出】
50
weight的数据类型为: <class 'int'>
1.68
height的数据类型为: <class 'float'>
4. 变量的多种赋值方式
4.1 一个变量存储一个数值
用input
函数给a,b,c
3个变量赋值,值分别为0.5
,2
,4
。
a = input("请输入一个数:")
b = input("请输入一个数:")
c = input("请输入一个数:")
print(a,b,c)
【终端输出】
0.5 2 4
这是我们之前学过的赋值方法,每行代码只能给一个变量赋值。
但其实,我们也可以用一行代码完成上面3行代码的赋值动作。
a, b, c= eval(input("请一次性输入3个数:"))
print(a,b,c)
print(type(a))
print(type(b))
print(type(c))
【终端输出】
0.5 2 4
<class 'float'>
<class 'int'>
<class 'int'>
我们用eval函数可以从终端一次性输入多个数值。
eval函数同时能将输入的字符串类型数据转换为能进行数学运算的整数或浮点数类型的数据。
【温馨提示】
在终端给3个变量a,b,c
赋值时,3个值之间用英文逗号,
分隔。
终端输入的样式如下:
0.5,2,4
4.2 多个变量存储多个数值
有时候,我们需要将多个数值存储到一个变量里,这该如何操作呢?
【方法1】
t = eval(input("请输入3个数值:"))
print(t)
print(type(t))
【终端输出】
(0.5, 2, 4)
<class 'tuple'>
用eval
函数从终端一次性输入多个数值并赋值给一个变量,该变量的数据类型为元组。
【方法2】
l = list(map(eval,input("请输入3个数值:").split(",")))
print(l)
print(type(l))
【终端输出】
[0.5, 2, 4]
<class 'list'>
split
函数是将字符串进行分割。
input
函数接收了从终端输入的数值,是一个字符类型的数据,该数据是map
函数第2个参数,即要操作的可迭代对象。
map函数的第1个参数是eval
函数,它的作用是将可迭代对象映射为可以参与运算的数值。返回的是迭代器。
最后利用list
函数将其转换为列表,因此程序最终输出了[0.5, 2, 4]
。
【温馨提示】
这样的方法是多个函数的综合运用。如果对该方法不理解,需要对每个函数的知识点进行重温,相信重温后你就能豁然开朗了。