python中的运算符
1、算术运算符:用来做算术运算的符号
①、+ :求和,也可以做连接符
②、 - :求差
③、 * : 求积
④、 / :求商
⑤、% :取余
⑥、// :取整
⑦、** :次方
注意:只能是数值
print(3*3) #求积结果:9 print(9/2) #相除结果:4.5 print(3**4) #3的4次方,结果:81 print(9//4) #小数部分直接丢掉,取整结果:2 print(13%3) #取余结果:1
运行结果是
9 4.5 81 2 1
比较运算符:用来比较(值只可能是布尔类型[真True或假False])
== > < >= <= !=(不等于)
注意:== 比较字符串时,比较的是字符串的内容,其他比较都是数值(字符串的长度)
score = 80 print(score > 90) print(score == 80) print(score >= 60) print(score != 80)
运行结果:
False True True False
赋值运算符
= +=(可以做连接符) -= *= **= /= %= //=
注意:赋值运算符的左侧一定是个变量,右侧一定要有个数据
= :将右边的值给左边;其他:将两边的结果给左边
num = 3 #赋值 num += 6 #赋值 print(num) num2 = 3 #赋值 num2 = num2 + 6 #赋值,等同于 num+=6(num+=6效率高些) print(num2) a = 10 a -= 5 #等同于 a = a - 5 print('-=的值:',a) b = 10 b *= 5 #等同于 b = b * 5 print('*=的值:',b) c = 12 c /= 5 #等同于 c = c / 5 print('/=的值:',c) d = 11 d %= 5 #等同于 d = d % 5 print('%=的值:',d) e = 10 e **= 5 #等同于 e = e * e * e * e * e print('**=的值:',e) f = 11 f //= 5 #等同于 f = f // 5 print('//=的值:',f) #+= 用于连接字符串 strVale = '我爱你' strVale+='北京' print(strVale)
运行结果:
9 9 -=的值:5 *=的值:50 /=的值:2.4 %=的值:1 **=的值:100000 //=的值:2 我爱你北京
逻辑运算符:判断2个布尔值的关系
and且(&) or或(|) not非
注意:逻辑运算符 两侧必须是布尔值
score = 80 sex = '男' print(score>=60 and sex=='女') #建议此方法 print((score>=60) & (sex=='女')) print(score>=60 or sex=='男') #建议此方法 print((score>=60) | (sex=='男')) print(not(score>=60))
运行结果:
False False True True False
位运算法符
& | ^
python表达式和语句
python表达式和语句没有明显的划分
python表达式:是值,变量和操作符(或叫运算符)的组合。单独的一个值是一个表达式,单独的变量也是一个表达式
python语句:是一段可执行代码。常见的有赋值语句、if语句、while语句、for语句、return语句、import语句等等...
python赋值
变量名在首次赋值时会被创建,变量名在引用(使用)前必须先赋值
1、普通赋值
请参照:python中的运算符 -> 赋值运算符,的讲解!
2、序列赋值
python把赋值运算符右侧元组(列表)内的值和左侧元组(列表)内的变量相互匹配,然后每一次赋一个值
注意:左右元素的个数要相等,一一对应!
#序列赋值 a,b=1,2 #元组赋值 等同于 (a,b) = (1,2) print(a,b) [c,d] = [100,200] #列表赋值 print(c,d) e,f,g = '我爱你' print(e,f,g)
运算结果:
1 2 100 200 我 爱 你
扩展解包赋值
一个带星号的变量名 ,收集了序列中没有赋值给其他名称的所有项
注意:只能存在一个*号,多个*会造成无法区分范围
a,b,c = '你好啊' print(a,b,c) a1,b1,*c1 = '你好啊TOM' print(a1,b1,c1) #你 好 ['啊', 'T', 'O', 'M'] a2,*b2,c2 = '你好啊TOM' print(a2,b2,c2) #你 ['好', '啊', 'T', 'O'] M #a3,*b3,*c3 = '你好啊TOM' #报错,只能有一个 * 号 #print(a3,b3,c3)
运行结果:
你 好 啊 你 好 ['啊', 'T', 'O', 'M'] 你 ['好', '啊', 'T', 'O'] M
多目标赋值(不建议使用)
num1,num2 = 3,4 #第一种方式 print(num1) print(num2) num3 = num4 =5 #第二种方式 print(num3) print(num4)
运行结果:
3 4 5 5
条件语句 (if 语句控制程序的执行)
通过一条或多条语句的执行结果(True或False)来决定执行的代码块
if 语句的判断条件可以用>、<、==、>=、<=来表示其关系。
如果判断条件有多个时,可以使用and/or连接。
注意:
python 并不支持 switch 语句,所以多个条件判断, 只能用 elif 来实现。
Python程序语言指定任何非0和非空(None)值为true,0 或者 None为false。
每个选择分支,执行内容可以多行,以缩进来区分表示同一范围。
1、if 语句:格式一
if 判断条件:
执行语句……
解释:判断条件成立(值为True),执行执行语句;否则不执行执行语句。
sex = '男' if sex == '男': print('语句执行...') print('程序语句结束!') print('----------------') if sex == '女': print('语句执行...') print('程序语句结束!')
运行结果:
语句执行... 程序语句结束! ---------------- 程序语句结束!
if 语句:格式二
if 判断条件:
执行语句1……
else:
执行语句2……
解释:其中"判断条件"成立时(非零),则执行后面的语句(执行语句1),else 为可选语句,当"判断条件"不成立时,执行(执行语句2)相关语句
注意:此格式的if语句,肯定有一个分支会被执行...
#肯定有一个会被执行... sex = '男' if sex == '男': print('sex的值是男') else: print('sex的值是女') print('----------------') sex = '男' if sex == '女': print('sex的值是女') else: print('sex的值是男')
运行结果:
sex的值是男 ---------------- sex的值是男
if 语句:格式三
当判断条件为多个值时,可以使用以下形式:
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
score = 70 if score > 100: print('非常优秀') elif score >80 : print('大于80分,优良') elif score >=60: print('大于等于60分,良好') else: print('不及格')
运行结果:
大于60分,良好
if 语句:格式四
如果判断条件有多个时,可以使用and/or连接。
当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比and/or要优先判断。
# 判断值是否在0~10之间 num01 = 9 if num01 >= 0 and num01 <= 10: print ('Yes') else: print ('no') print('----------------') # 判断值是否在0~5或者10~15之间 if (num01 >= 0 and num01 <= 5) or (num01 >= 10 and num01 <= 15): print ('hello') else: print ('undefine')
运行结果:
Yes ---------------- undefine
python 复合布尔表达式计算采用短路规则,即如果通过前面的部分已经计算出整个表达式的值,则后面的部分不再计算。
a=0 b=1 #没报错,说明 b / a > 2没执行 if ( a > 0 ) and ( b / a > 2 ): print ("yes" ) else: print ("no") #报错, b / a > 2 执行啦 a=0 b=1 if ( a > 0 ) or ( b / a > 2 ): print ("yes") else : print ("no")
运行结果:
no Traceback (most recent call last): File "../demoTest02.py", line 152, in <module> if ( a > 0 ) or ( b / a > 2 ): ZeroDivisionError: division by zero
if 语句:格式五
在嵌套 if 语句中,可以把 if...elif...else 结构放在另外一个 if...elif...else 结构中。
if 表达式1:
语句
if 表达式11:
语句
elif 表达式22:
语句
else:
语句
elif 表达式2:
语句
else:
语句
注意:只有进入外层的if,才有可能执行内层的if
score = 90 sex = '男' if score > 80: print('进入国家队') if sex == '男': print('男子队') else: print('进入女子队') else: print('淘汰掉...')
运行结果:
进入国家队 男子队
if 语句:格式六 (不建议使用)
可以在同一行的位置上使用if条件判断语句
var = 100 # if后面只有一条语句,可以写在一行 if ( var == 100 ) : print ("变量 var 的值为100")
运行结果:
变量 var 的值为100
注意:Python程序语言指定任何非0和非空(None)值为true,0 或者 None为false
if True: print('123') if 124: print('123')
运行结果:
123 123
循环语句 (允许执行一个语句或语句组,多次)
Python提供了两种循环语句:while循环 \ for循环
while循环
判断条件为True时执行一次执行语句,然后再次判断条件。直到判断条件假False时,循环结束。
注意:使用while循环时别忘了写条件控制语句(循环退出的条件),否则会变为死循环。
while 判断条件:
执行语句……
案例1:输出0到10的整数
num01 = 0 while num01 <= 10 : print(num01) num01 += 1 #条件控制语句 print('循环结束...')
运行结果:
0 1 2 3 4 5 6 7 8 9 10 循环结束...
案例2:输出0到10的偶数
#输出0到10的偶数 num01 = 0 while num01 <= 10 : if num01 % 2 ==0: print(num01) num01 += 1 #条件控制语句 print('循环结束...')
运行结果:
0 2 4 6 8 10 循环结束..
案例3:while … else 在循环执行结束后执行 else 语句块
#while … else 在循环执行结束后执行 else 语句块 num01 = 0 while num01 <= 10 : if num01 % 2 ==0: print(num01) num01 += 1 #条件控制语句 else: print('循环结束...')
运行结果:
0 2 4 6 8 10 循环结束..
案例4:while 后面只有一条语句,可以写在一行
#while 后面只有一条语句,可以写在一行 #不知道循环次数时,条件用True,内部控制循环退出... #本案例的执行结果是,死循环...... while True: print('循环中.....')
for循环
for 变量 in 序列:
语句
注意:in:判断一个变量是否在序列中
1、简单应用
nums = [1,5,7,2,10] for item in nums: print(item)
运行结果:
1 5 7 2 10
range() 代表整数区间
#range()只有一个参数:左边界默认从0开始,右边界为指定的值的前一个数 num1 = range(3) for item in num1: print(item) print('-------------') #range()有两个参数,分别指定左右边界,但右边界为指定的值的前一个数 num2 = range(1,3) for item in num2: print(item) print('-------------') #range()有三个参数,第三个参数代表步长 num3 = range(1,10,2) for item in num3: print(item)
运行结果:
0 1 2 ------------- 1 2 ------------- 1 3 5 7 9
else中的语句会在循环正常执行完的情况下执行
#获得序列的索引 numbers = [1,5,7,2,10] for item in range(len(numbers)): print(item) else: print('循环结束')
运行结果:
0 1 2 3 4 循环结束
循环嵌套
外套环循执行一次,内层循环一轮
打印图形,外层控制行数,内层控制每行的*的个数
①、简单案例
for x in ['田径队', '游泳队', '篮球队']: for y in ['第一名', '第二名', '第三名']: print (x + y)
运行结果:
田径队第一名 田径队第二名 田径队第三名 游泳队第一名 游泳队第二名 游泳队第三名 篮球队第一名 篮球队第二名 篮球队第三名
打印4行5列矩形*号
#打印4行5列矩形*号 for x in range(4): for y in range(5): print('*',end="") print()
运行结果:
***** ***** ***** *****
打印8行直角三角形*号
#打印8行直角三角形*号 for j in range(1,9): for i in range(j): print("*",end="") print()
运行结果:
* ** *** **** ***** ****** ******* ********
打印乘法口诀表
#打印乘法口诀表 for j in range(1,10): for i in range(1,j): print("{0}*{1}={2};\t".format(i,j,j*i),end="") print()
运行结果:
1*2=2; 1*3=3; 2*3=6; 1*4=4; 2*4=8; 3*4=12; 1*5=5; 2*5=10; 3*5=15; 4*5=20; 1*6=6; 2*6=12; 3*6=18; 4*6=24; 5*6=30; 1*7=7; 2*7=14; 3*7=21; 4*7=28; 5*7=35; 6*7=42; 1*8=8; 2*8=16; 3*8=24; 4*8=32; 5*8=40; 6*8=48; 7*8=56; 1*9=9; 2*9=18; 3*9=27; 4*9=36; 5*9=45; 6*9=54; 7*9=63; 8*9=72;
循环控制语句
1、break语句用来终止所在的循环语句
#num的值会随着循环增大,在增大到5的时候,遇到break,循环退出 num = 0 while True: if num == 5: break print(num) num += 1 print('-------------------') #在嵌套循环中,break只退出,break语句所在的循环,导致整个内层循环只执行了一次 for j in range(3): for x in range(3): print('hello...') break
运行结果:
0 1 2 3 4 ------------------- hello... hello... hello...
continue语句用来跳出所在循环体的本次循环,继续下一次循环
#到8就跳过 num02 = 0 while num02 <= 10: if num02 ==8: num02 +=1 continue #在num02等于8时,退出当次循环,继续下一次循环 print(num02 ) num02 +=1 print('程序结束')
运行结果:
0 1 2 3 4 5 6 7 9 10 程序结束