标准输入
输入
实际工作中,我们经常输入获取用户的输入信息,如银行系统中的密码输入、淘宝中的用户登录验证。
input()输入方法
在Python中,如果想让Python程序接受用户的输入信息,可以使用input()方法
基本语法
input()
但是往往只有input()方法,其意义不大,我们还应该使用一个变量来临时接受用户的输入,已方便后期的操作。
变量名称 = input('提示信息:')
案例
银行系统中的,输入密码的过程
password = input('请输入您的银行卡密码:')
print(f'您输入的银行卡密码为:{password}')
input()方法重要事项
所有由input()方法获取的数据都是字符串类型
name = input('请输入您的姓名:')
age = input('请输入您的年龄:')
print(type(name)) # <class 'str'>
print(type(age)) # <class 'str'>
类型转换
使用Python实现超市的收银系统,输入商品名称、商品编号和商品价格,按照格式输出内容:您购买了苹果,商品编号为211001,商品价格为3.5,欢迎下次光临!`。
name = input('请输入您要购买商品名称:')
id = input('请输入您要购买商品编号:')
price = input('请输入您要购买的商品价格:')
print(f'您购买了{name},商品编号为{id},商品价格为{price},欢迎下次光临!')
以上程序虽然可以按照上图完成程序的正常输出,但是遗留了一个非常严重的问题:这个价格price变量无法参与数学运算(如买了两个苹果,应该是3.5 * 2),原因在于input()方法返回的所有的结果都是str字符串类型。
怎么解决以上问题呢? 答:使用数据类型转换
数据类型转换
案例1
把用户输入的幸运数字,转换为整型。
num = input('请输入您的幸运数字:')
print(type(num))
#数据类型转换,把str字符串类型转换为int类型
num = int(num)
print(type(num))
以上代码还可以简写为:
num = int(input('请输入您的幸运数字:'))
print(type(num))
案例
多种数据类型转换
# 1、整型转浮点类型 int => float
num1 = 10
print(float(num1))
print(type(float(num1)))
# 2、浮点类型转换为整型 float => int,浮点转整型,其小数点后的数据会丢失!!!
num2 = 18.88
print(int(num2))
# 3、把字符串类型转换为整型或浮点类型
str1 = '20'
str2 = '10.88'
print(type(int(str1)))
print(type(float(str2)))
案例3
eval()
方法的使用,把字符串中的数字转换为原数据类型。
price = input('请输入您购买商品的价格:')
print(eval(price))
print(type(eval(price)))
str1 = '10'
print(eval(str1)) #经过eval(str1) 转换为int类型
str2 = '10.88'
print(eval(str2)) #经过eval(str2) 转换为float类型
总结
上面提到了4种数据类型转换方法:
int()
:转整型float()
:转浮点类型str()
:转字符串类型eval()
:把字符串转换为原数据类型
但是要特别注意:当float
浮点类型转换为int
整型时,其小数点后面的数据会丢失,一定要记住这个特性。
下表列出常用的类型转换方法
函数 | 说明 |
---|---|
int(x [,base ]) | 将x转换为一个整数 |
float(x) | 将x转换为一个浮点数 |
complex(real [,imag ]) | 创建一个复数,real为实部,imag为虚部 |
str(x) | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为一个元组 |
list(s) | 将序列 s 转换为一个列表 |
chr(x) | 将一个整数转换为一个Unicode字符 |
ord(x) | 将一个字符转换为它的ASCII整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
bin(x) | 将一个整数转换为一个二进制字符串 |