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参数,该参数的默认值为"
"(代表换行),可以将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以后才推出的格式化方式。

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 算数运算符

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 交叉赋值

	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 :就是把紧跟其后的那个条件结果取反

		print(not 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是否相等

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 []) #[]

原文地址:https://www.cnblogs.com/xy-han/p/12426811.html