实际工作中,我们经常输入获取用户的输入信息,如银行系统中的密码输入、淘宝中的用户登录验证。
在Python中,如果想让Python程序接受用户的输入信息,可以使用input()方法
基本语法
input()
但是往往只有input()方法,其意义不大,我们还应该使用一个变量来临时接受用户的输入,已方便后期的操作。
变量名称 = input('提示信息:')
案例
银行系统中的,输入密码的过程
password = input('请输入您的银行卡密码:')
print(f'您输入的银行卡密码为:{password}')
input()方法重要事项
所有由input()方法获取的数据都是字符串类型
name = input('请输入您的姓名:')
age = input('请输入您的年龄:')
print(type(name)) #
print(type(age)) #
类型转换
使用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) | 将一个整数转换为一个二进制字符串 |



