自动化运维[python]——————python中的输入[input( )、getpass模块、raw_input( )]与输出[print( )]

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))
发布了10 篇原创文章 · 获赞 0 · 访问量 237

猜你喜欢

转载自blog.csdn.net/mango_kid/article/details/104774871