Python之 交互与运算符

一 与用户交互

1.1 输入input

# 在python3中input功能会等待用户的输入,用户输入任何内容,都存成字符串类型,然后赋值给等号左边的变量名
>>> username=input('请输入您的用户名:') 
请输入您的用户名:jack # username = "jack"
>>> password=input('请输入您的密码:') 
请输入您的密码:123 # password = "123"

# 了解知识:
# 1、在python2中存在一个raw_input功能与python3中的input功能一模一样
# 2、在python2中还存在一个input功能,需要用户输入一个明确的数据类型,输入什么类型就存成什么类型
>>> l=input('输入什么类型就存成什么类型: ')
输入什么类型就存成什么类型: [1,2,3]
>>> type(l)
<type 'list'>

1.2 输出print

# 默认print功能有一个end参数,该参数的默认值为"\n"(代表换行),可以将end参数的值改成任意其它字符
print("aaaa",end='')
print("bbbb",end='#')
print("cccc",end='@')
#整体输出结果为:aaaabbbb#cccc@
二 格式化输出

注:这里格式化输出都是指的是字符串的格式化输出。
1.1 %方式

​ 1 %s可以接收任意类型,%d只能接收int

​ 值按照位置与%s一一对应,少一个不行,多一个也不行

 res="my name is %s my age is %s" %("18",'han')
 print('my age is %d' %18)

​ 2 以字典的形式传值,打破位置的限制

res="我的名字是 %(name)s 我的年龄是 %(age)s" %{"age":"18","name":'han'}

​ 3 输入出 百分比形式数据 例:97%

print('成功的概率 %s%%'%97,) #97%

1.2 str.format

​ 1 按位置传值

res='我的名字是 {} 我的年龄是 {}'.format('jax',18)	
res1='我的名字是 {0}{0}{0} 我的年龄是 {1}{1}'.format('ying',18)

​ 2 打破位置的限制,按照key=value传值

res="我的名字是 {name} 我的年龄是 {age}".format(age=18,name='yinghan')

​ 3 四舍五入

print('{salary:.3f}'.format(salary=1232.12351))  #精确到小数点后3位,四舍五入,结果为:1232.124

1.3 f " " 方式

这是python3.5以后才推出的格式化方式。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
x = input('your name: ')
y = input('your age: ')
res = f'我的名字是{x} 我的年龄是{y}'  
print(res)

​ { }内的字符串可以被当做表达式运行

res =f'10+3'
print(res) #13

2 拓展

​ 2.1 填充与格式化

​ 先取到值,然后在冒号后设定填充格式填充自字符,对齐方式,宽度

# *<10:左对齐,总共10个字符,不够的用*号填充
print('{0:*<10}'.format('开始执行')) # 开始执行******
print('{x:=>10}'.format(x = '开始执行'))# ******开始执行
# *>10:右对齐,总共10个字符,不够的用*号填充
print('{0:*>10}'.format('开始执行')) # ******开始执行
print('{x:=<10}'.format(x='开始执行')) # 开始执行******
# *^10:居中显示,总共10个字符,不够的用*号填充
print('{0:*^10}'.format('开始执行')) # ***开始执行***
print('{x:=^10}'.format(x='开始执行')) # ***开始执行***

2.2 精度与进制

print('{salary:.3f}'.format(salary=1232132.12351))  #精确到小数点后3位,四舍五入,结果为:1232132.124
print('{0:b}'.format(123))  # 转成二进制,结果为:1111011
print('{0:o}'.format(9))  # 转成八进制,结果为:11
print('{0:x}'.format(15))  # 转成十六进制,结果为:f
print('{0:,}'.format(99812939393931))  # 千分位格式化,结果为:99,812,939,393,931
三 运算符

1 算数运算符

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
print(10 + 3.1)
print(10 + 3)
print(10 / 3)  # 结果带小数
print(10 // 3)  # 只保留整数部分
print(10 % 3) # 取模、取余数
print(10 ** 3) #  

2 比较运算符

​ 比较运算符有:>、>=、<、<=、==、!=

print(10 > 3)  #True
print(10 == 10)	#True
print(10 >= 10)	#True
print(10 >= 3)	#True
print(10 != 10) #False

3 赋值运算符

3.1直接赋值

  a = 10
  name = 'han'

3.2 增量式赋值

a = 10
a += 1 
print(a) # 11

3.3 链式赋值

x=y=z=10

3.4 交叉赋值

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
m = 10
n = 20
m, n = n, m
print(m) #20
print(n) #10

3.5 解压赋值

num = [1,2,3,4]
a,b,c,d = num  #对应的变量名少一个不行
print(a,b,c,d) #1 2 3 4  

​ 引入*,可以帮助我们取两头的值,无法取中间的值

num = [1,2,3,4]
a,b,*_ = num  # *会将没有对应关系的值存成列表然后赋值给紧跟其后的那个变量名,此处为_
print(a,b) #1 2 
a,*_,d = num 
print(a,d) #1 4

​ 解压字典默认解压出来的是字典key

x,y,z={'a':1,'b':2,'c':3}
print(x,y,z) #a b c

3.6 逻辑运算符

​ not :就是把紧跟其后的那个条件结果取反

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
printnot 18 > 12#False
print(not 10) #False
print(not None) #True

and:逻辑与,and用来链接左右两个条件,两个条件同时为True,最终结果才为真。

print(True and 1) # 1 
print(True and 10>3 and [])#[] 条件全为真,最终结果才为true

​ or:逻辑或,or用来链接左右两个条件,两个条件但凡是有一个为True最终结果为True;两个条件同时为False,最终结果才为False

print(3 > 2 or 0) #True

如果单独就只是一串and链接,或者说单独就只是一串or链接,按照从左到右的顺讯依次运算即可(偷懒原则)

res=3>4 and not 4>3 or 1==3 and 'x' == 'x' or 3 >3
print(res)#False

可以根据优先级转化为下面,方便观察:

res=(3>4 and (not 4>3)) or (1==3 and 'x' == 'x') or 3 >3
print(res) #False

如果是混用,则需要考虑优先级了

​ 优先级 not > and > or

扩展:

print(1 and 10)  #10
print(1 or 2)   # 1
print(11 or 2 and 3) # 11
print(True and 10>3 and 0) #0
print(1 and True) #True
print(True and 1) #1
print(3 > 2 or 0) #True
print(True and 10>3 and []) #[]

3.7 成员运算符 in

​ 判断一个字符串是否存在于一个大字符串中

print('han' in 'hello han')#True
print("e" in "hello egon") #True

​ 判断元素是否存在于列表

print(11 in [11,22]) #True

​ 判断key 是否存在于字典

print("k1" in {"k1":111,'k2':222}) #True
print(111 in {"k1":111,'k2':222}) #False

3.8 身份运算符 is

​ is : 判断的是id是否相等

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
a = 11
b = a
print(a is b) #True

3.9 短路运算

​ 短路运算:偷懒原则,偷懒到哪个位置,就把当前哪个位置的值(显式或隐式)返回

print(True and 10>3 and 0) #0
print(1 and True) #True
print(True and 1) #1
print(3 > 2 or 0) #True
print(True and 10>3 and []) #[]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值