python 运算符及 字符串格式化输出方式 if条件语句判断 random函数简单应用练习
1、运算符的概念
• 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”
2、运算符的分类
• 算术运算符
• 赋值运算符
• 比较运算符(关系运算符)
• 逻辑运算符
• 条件运算符(三元运算符)
2.1 算术运算符
• 加法运算符 表现形式 +
• 减法运算符 表现形式 -
• 乘法运算符 表现形式 *
• 除法运算符 表现形式 /
• // 整除,只会保留计算后的整数位,总会返回一个整型
• % 取模,求两个数相除的余数
• ** 幂运算,求一个值的几次幂
# @Author :莲花街一灯大师
# @File :算术运算符.py
a = 1 + 2 #加法运算符 表现形式 +
a = '1' + '2' #字符串的加法运算符,结果为‘12’,是将两个字符串拼接在一起,相当于‘1’+‘2‘
a = 1 * 3 #乘法运算符 表现形式 *
a = '1' * 3 # a = '1'+'1'+'1' ='111'
#a = '12' - '2' #TypeError: unsupported operand type(s) for -: 'str' and 'str'
#a = '12' / 2 #TypeError: unsupported operand type(s) for /: 'str' and 'int'
'''注意:字符串没有减法和除法运算,只能进行加法和乘法运算!!!!'''
a = 10 // 3 # // 整除,只会保留计算后的整数位,总会返回一个整型
a = 10 % 3 # % 取模(余),求两个数相除的余数
a = 2 ** 3 # ** 幂运算,求一个值的几次幂,相当于函数pow(2,3),2为底数,3为幂次
'''
以上的代码演示,均使用的是a作为变量名进行赋值,在python中,代码的运算是由上而下,采用相同的变量名进行赋值时,\
总会打印最新一次赋值的变量名的值,如:上述的a = 10 % 3和a = 2 ** 3,在print(a)中就会先打印a = 2 ** 3。
'''
print(a)
2.2 赋值运算符
赋值运算符的特殊写法 x = x + 3 其实是和 x += 3 是一样的
• += (x+= 3 相当于 x = x + 3 )
• -= (x -= 3 相当于 x= x - 3 )
• *= (x = 3 相当于 x = x 3 )
• **= (x **= 3 相当于 x = x ** 3 )
• /= (x /= 3 相当于 x = x/ 3 )
• //= (x //= 3 相当于 x = x // 3 )
• %= (x %= 3 相当于 x= x % 3 )
# @Author :莲花街一灯大师
# @File :赋值运算符.py
x = 3 #将3作为值赋给变量x,其中x为变量名,3为值
x += 3 #相当于 x = x + 3
x -= 3 #相当于 x= x - 3
x *= 3 #相当于 x = x * 3
x **= 3 #相当于 x = x ** 3
x /= 3 #相当于 x = x / 3
x //= 3 #相当于 x = x // 3
x %= 3 #相当于 x= x % 3
print(x)
2.3 比较运算符
• 比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False
• > 比较左侧值是否大于右侧值
• >= 比较左侧的值是否大于或等于右侧的值
• < 比较左侧值是否小于右侧值
• <= 比较左侧的值是否小于或等于右侧的值
• 特殊的比较方式
• == 比较两个对象的值是否相等
• != 比较两个对象的值是否不相等
• is 比较两个对象是否是同一个对象,比较的是对象的id
• is not 比较两个对象是否不是同一个对象,比较的是对象的id
# @Author :莲花街一灯大师
# @File :比较运算符.py
'比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False'
a = 1 > 2 # > 比较左侧值是否大于右侧值,结果为False
a = '11' > '2'
''' 结果为False,在python中,字符的比较是根据ASCII码表进行的,如’11‘>'2’中,比较时是先用\
'11'的第一位与‘2’进行比较的,‘1’<'2',所以返回的值为False,如果第一位相同,才进行第二位的比较\
以此类推。'''
a = 'aa' > 'ab' #值为False
b = 2 >= 1 # >= 比较左侧的值是否大于或等于右侧的值,结果为True
print(b)
c = 1 < 2 # < 比较左侧值是否小于右侧值
c = 1 <= 1 # <= 比较左侧的值是否小于或等于右侧的值
# 特殊的比较方式
d = 3 == 3 # == 比较两个对象的值是否相等
d = 'python' == 'python' #True
d = 1 == True #True,布尔中False实际就是1的值,False就是0的值。
d = 1 + True #值为2
e = 2 != 1 # != 比较两个对象的值是否不相等
f = 1 is True # is 比较两个对象是否是同一个对象,比较的是对象的id,1是整型,True是bool,返回值是False
g = 1 is not True # is not 比较两个对象是否不是同一个对象,比较的是对象的id,返回值为True.
2.4 逻辑运算符
2.4.1 not 逻辑非
• not可以对符号右侧的值进行非运算,对于布尔值,非运算会对其进行取反操作,True变False,False变True
# @Author :莲花街一灯大师
# @File :逻辑运算符.py
# 逻辑非(not)
a = 1
a = not a
a = not 0
a = not None
a = not ''
a = not []
print(a)
'总结:除了0、空串、None和一些表示空性的值会转换为False,其余的所有都可以转换为True(只能进行逻辑True、False判断的时候)'
2.4.2 and 逻辑与
• and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
• 与运算是找False的,如果第一个值为False,则不再看第二个值
# @Author :莲花街一灯大师
# @File :逻辑运算符.py
# 逻辑与 and
b = True and True
b = False and False
b= True and False
print(b)
2.4.3 or 逻辑或
• 或运算两个值中只要有一个True,就会返回True
• 或运算是找True的
# @Author :莲花街一灯大师
# @File :逻辑运算符.py
# 逻辑或 or
c = False or False
c = False or True
c = True or True
print(c)
2.4.4 非布尔值的与或运算
- 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
- 非布尔值与运算的规则
• 与运算是找False的,如果第一个值是False,则不看第二个值,否则返回第二个值
• 非布尔值或运算的规则
• 或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值
# @Author :莲花街一灯大师
# @File :逻辑运算符.py
# 逻辑与或的非布尔值运算
# 逻辑与:规则是找False,如果第一个值是False,则不看第二个值,直接返回第一个值,反之则返回第二个值。
res = 1 and 2
res = 1 and 1
res = 0 and 2
res = 0 and None
print(res)
# 逻辑或:规则找True,如果第一个值是True,则不看第二个值,直接返回第一个值,反之则返回第二个值。
abc = 1 or 2
abc = 1 or 0
abc = False or 2
print(abc)
2.5 条件运算符(三元运算符)
- 条件运算符在执行时,会先对条件语句中的表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果
语法: 语句1 if 条件表达式 else 语句2
# @Author :莲花街一灯大师
# @File :条件运算符.py
# 语句1 if 条件表达式 else 语句2
a = 20
b = 30
c = a if b > a else b
print(c)
if b > a :
c = a
else:
c = b
print(c)
3、 运算符的优先级
练习
- 以4种格式化字符串的方式来实现 521 xxx 嫁给我好吗?
# @Author :莲花街一灯大师
# @File :练习.py
# 以4种格式化字符串的方式来实现 521 xxx 嫁给我好吗?
# 方法一:以%s格式化输出
a = 'lyj'
print( '521:\t%s嫁给我好吗?'%a)
# 方法二:以f'{}'传递参数
c = f'521:\t{a}嫁给我好吗?'
print(c)
# 方法三:format格式化输出
d = '521:\t{}嫁给我好吗?'.format(a)
print(d)
#方法四:通过random.choice()函数进行随机选择
import random
e = ['lyj','sdsbjd','svdjg','dgfhrt','wywgv','wygwagy']
f = '521:\t{}嫁给我好吗?'.format(random.choice(e))
print(f)
- 现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值
# @Author :莲花街一灯大师
# @File :练习.py
# 现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值
import random
a = random.randint(0,6) #随机取0-4的整数
b = random.randrange(0,10,2) #随机取0-10且步长为2的整数
c = random.randrange(0,6,2) #随机取0-6且步长为2的整数
d = [a,b,c] #将变量放入列表中
# print(max(d))
try:
while True:
if b>=a or b>=c or a>=c:
e=max(d)
print(e)
break
else:
print('不符合要求,正在重新请求!')
continue
except Exception as error:
print(error)
总结
本文为学习笔记,转载请标明出处,本文仅供交流学习,请勿用于非法途径,希望本文对大家有帮助。
仅是个人意见,如有不足之处或者侵权,请留言