码迷,mamicode.com
首页 > 其他好文 > 详细

与用户交互、格式化输出、基本运算符

时间:2019-05-21 19:15:03      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:obb   好用   测试   保留   简单的   多个   识别   占位符   逻辑运算   

与用户交互

交互就是有来有往,python与用户交互就是要python与用户互动,比如input指令

a = input('请输入密码')
print(a)
请输入密码123321
123321

上面举了一个简单的例子,用户输入密码,input接收了密码赋值给a,这时候我们再看a的变量值就是用户输入的密码。
input可以接收用户输入的信息,但接收的是什么类型的信息呢?我们之前学过有整形、浮点型、字符串型、列表、字典以及布尔类型,那么我们可以测试得到:

a = input('请输入密码')
print(type(a))
请输入密码111111
<class 'str'>
a = input('请输入密码')
print(type(a))
请输入密码111.15
<class 'str'>
a = input('请输入密码')
print(type(a))
请输入密码asdfggg
<class 'str'>

由此可知,input指令接收的信息都会以字符串类型保存,如果我们需要转换成其他格式需要再把接收的值以其他数据格式赋值。

a = input('请输入密码')
print(a)
print(type(a))
a = int(a)
print(type(a))
请输入密码25555
25555
<class 'str'>
<class 'int'>

如此就可以把格式更换数据类型保存。

在python2和python3中有一个很大的区别就是,python2中,使用input与用户交互时需要用户指定数据类型,而除了程序猿本身大多数用户对数据类型都没有概念,所以在python3中input变为了接收所有类型的数据,统一存放为字符串型。

格式化输出

在与用户交互时,经常需要我们以固定格式对用户反馈信息,比如

name = input('用户名')
age = input('你的年龄')
print('你好'+ name,',你的年龄是'+age)
用户名韦小宝
你的年龄18
你好韦小宝 ,你的年龄是18

这样编写起来就比较麻烦,我们可以选择使用占位符先占位后替换,以达到简洁方便的目的。

name = input('用户名')
age = input('你的年龄')
print('你好%s,你的年龄是%s'%(name,age))
用户名韦小宝
你的年龄18
你好韦小宝,你的年龄是18

%s和%d都是占位符,python在识别到%s(针对所有类型)或%d(只针对数据类型)后就知道这个位置是占位了的,待要输出的内容结束后以%()在括号中再把变量顺序填入就可以。

format格式化

format格式化以{}作为占位,结束时以.format()结束(括号中变量需要一一对应)

name = input('名字')
age = input('年龄')
height = input('身高')
print('你好{},你的年龄是{},你的身高是{}'.format(name,age,height))
名字毛毅智
年龄18
身高182
你好毛毅智,你的年龄是18,你的身高是182

这种格式化的方式在遇到多个变量的时候并不太好用,因为还要一一对应来输入一堆变量名,所以平常我们使用另一种格式化方式:f-string

f-string格式化

f-string格式化直接以{变量名}作为占位符,且可以在句中进行算术运算,在print(后输入一个f或F即使用了f-string格式化。

name = input('名字')
age = input('年龄')
height = input('身高')
print(f'你好{name},你明年的年龄是{int(age)+1},你的身高是{height}')
名字韦小宝
年龄18
身高182
你好韦小宝,你明年的年龄是19,你的身高是182

:.nf加在数字型变量后可做到四舍五入保留n位小数

name = input('名字')
age = input('年龄')
height = input('身高')
print(f'你好{name},你明年的年龄是{int(age)+1:.2f},你的身高是{height}')
名字韦小宝
年龄18
身高182
你好韦小宝,你明年的年龄是19.00,你的身高是182

基本运算符

算术运算符:+ - * / % //

比较运算符:<、> 、<=、>=、=

赋值运算符:=

逻辑运算符:and、or、not
and表示“与”需要前后条件都为true才为true
or表示“或”前后有一方为true即为true
not表示“非”,条件不成立时逻辑判断为true

身份运算符:is

优先级:需要优先运算的用括号括起来即可

链式赋值

a = b = c = 10
print(a,b,c)
10 10 10

交叉赋值

x = 10
y = 20
z = x
x = y
y = z
print(x,y)
20 10

或者

x = 10
y = 20
x,y = y,x
print(x,y)
20 10

解压缩

在列表中有多个元素时,如果我们想把元素取出就需要解压缩,解压缩有几种方式:

hobby_list = [111,222,444,555,666,777,888,999]
print(hobby_list[3])#只取从左到右第四个数这一个数
555
hobby_list = [111,222,444,555,666,777,888,999]
print(hobby_list[-3])#只取从右到左第三个数这一个数
777
hobby_list = [111,222,444]
hb1,hb2,hb3 = hobby_list
print(hb1)
print(hb2)
print(hb3)
111
222
444
hobby_list = [111,222,444]
_,hb1,_ = hobby_list
print(hb1)#以下划线可以代表不需要的列表中的位数
222
hobby_list = [111,222,444,555,66,777,888,999]
hb1,_,hb2,*_ = hobby_list#星号和下划线可以代表其他位置剩余的数位
print(hb1)
print(hb2)
111
444

与用户交互、格式化输出、基本运算符

标签:obb   好用   测试   保留   简单的   多个   识别   占位符   逻辑运算   

原文地址:https://www.cnblogs.com/acate/p/10901677.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!