文章目录
1.接收用户从键盘输入的数据
我们写的程序不能只和程序员进行交互,一定要和用户进行交互,比如接收用户输入的信息,处理这个信息,最后给用户一个反馈。
1.1python3中
1.1.1 普通输入回显input( )
一般我们让用户输入内容,我们将内容可以回显。
>>> input('Num:')
Num:2
'2'
>>> input('Num:')
Num:abc
'abc'
我们输入的所有内容以字符串的形式回显。
1.1.2 密码输入不回显(getpass模块)
在python中我们有很多第三方模块,这里我们使用getpass模块。就可以和用户交互不回显。
比如我们有一个123456密码输入,我们将这个密码赋值给num变量。
>>> import getpass
>>> num = getpass.getpass('请输入密码:')
请输入密码:
这时你输入的内容就不会显示出来,可以打印num变量,得到密码值:
>>> print(num)
123456
1.2 python2中
1.2.1 数字bool可用input( )
向其中输入数字2:
>>> input('num:')
num:2
2
当我们输入一个数字,是以数值型显示的。
向其中输入字符串‘songyr’:
>>> input('num:')
num:songyr
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'songyr' is not defined
输入了字符串报错了。
注意:在python2中input( )函数只支持正确的数值类型和bool型。
输入浮点型:
>>> input('num:')
num:1.2
1.2
输入bool型:
>>> input('num:')
num:True
True
>>> input('num:')
num:False
False
1.2.2 字符串使用raw_input( )
如果一定要输入字符串,这时候使用raq_input( )函数:
>>> raw_input('num:')
num:2
'2'
>>> raw_input('num:')
num:songyr
'songyr'
这时候就和python3中的input()函数一样,输入的都成为了字符串型。
1.3 python3中接收数据进行比较
在python3中接收到的数字字符串,我们可以直接转换为数值型进行比较。
>>> num = int(input('num:'))
num:123
>>> print(num)
123
这样就可以直接是数值型进行比较。
2.输出print( )
使用print( )直接输变量,这样就可以改变变量改变输出结果。
2.1 整型
2.1.1 直接输出整数
- %d:整型
>>> name = 'songyanru'
>>> age = 21
>>> print('%s的年龄是%d' %(name,age))
songyanru的年龄是21
这时候我们直接改变变量的值就可以改变输出内容。
2.1.2 整数固定长度
还可以通过规定常规位和变化位来确定。
- 比如我们有学号0317xxxx共8位学号,我们在写入的时候可以使用==‘0317%.4d’==,可以确定8位学号。
>>> name = 'song'
>>> num = 1
>>> print('%s的学号是0317%.4d' %(name,num))
song的学号是03170001
2.2 字符串
>>> name = 'liuyaowen'
>>> age = 14
>>> print('%s的年龄是%d' %(name,age))
liuyaowen的年龄是14
格式化输出:
- %s:字符串的占位
2.3 浮点型
2.3.1 直接输出浮点型
- %f:浮点型
>>> name = '工资'
>>> money = 12.113
>>> print('%s是%f' %(name,money))
工资是12.113000
注意:%f会自动补0保留6位小数。
2.3.2 小数固定长度
我们使用%.nf保留n位小数。
>>> name = '工资'
>>> money = 12.113
>>> print('%s是%.3f' %(name,money))
工资是12.113
2.3.3 百分数
- 首先10%也是0.10。先输出0.10
>>> num = 0.1
>>> print('%.2f' %(num))
0.10
- 将0.10变为10。
>>> print('%.2f' %(num * 100))
10.00
然后加上%就可以了
>>> print('%.2f%' %(num * 100))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: incomplete format
注意:这里必须使用%%才可以加上%一个。
>>> print('%.2f%%' %(num * 100))
10.00%
3.练习题
求平均成绩(python3解释器):
- 输入学生姓名。
- 依次输入学生三门科目成绩(‘语文、数学、英语’)。
- 结算改学生的平均成绩,并打印。
- 平均成绩保留一位小数。
- 计算语文成绩占总成绩的百分比。
总成绩:
name = input('输入你的姓名:')
yu = int(input('输入你的语文成绩:'))
shu = int(input('输入你的数学成绩:'))
ying = int(input('输入你的英语成绩'))
print('%s的总成绩是%d' % (name, yu + shu + ying))
平均分:
print('语文成绩所占百分比是%.2f%%' %( yu / (yu + shu + ying) * 100))
结果:
输入你的姓名:song
输入你的语文成绩:12
输入你的数学成绩:80
输入你的英语成绩56
song的总成绩是148
语文成绩所占百分比是8.11%
也可以定义多个变量:
zong = yu + shu + ying
yubi = yu / zong
print('%s的总成绩是%d' % (name, zong))
print('语文成绩所占百分比是%.2f%%' %(yubi * 100))