1.分支结构 if
python中的分支结构只有if语句,没有switch。
1 基本语法
a.语法:
if 条件语句:
代码段
b.说明:
条件语句 - 任何结果的表达式(不管结果是什么类型)
":": 固定。
代码段 - 和if保持一个缩进的一条或者多条语句。
c.执行过程:
先判断条件语句的结果是否是True,如果是True就执行代码段。否则就不执行。
注意:如果条件语句的结果不是布尔,会将结果先转换成布尔再判断。
if 后面不能接赋值语句。其余都可以,敲黑板。# if num = 10:
a = int(input("输入任意数:"))
b = 1
c = a & b
print(c)
if c == 1:
print("%s"%a+"是"+"奇数")
elif c == 0:
print("%s" %a + "是" + "偶数数")
d.几种基本操作。
if 10:
print("条件语句是10")
print("===") # 和if保持一个缩进的语句是在条件成立的时候才执行
print("********") # 和if没有缩进的语句是在无论是否条件成立都执行
if 0:
print("条件语句是0")
if "asdasdgfh":
print("条件语句是asdasdgfh")
if True:
print("条件语句是True")
if 10 > 20:
print("条件语句是10 > 20")
if "abn".isupper():
print("条件语句是abn")
if "ASD".isupper():
print("条件语句是ASD")
1.if elif else
a.语法
if 条件语句:
代码段1
elif:
代码段2
elif:
代码段3
else:
代码段4
b.执行过程:
一个条件一个判断,不成立就执行下面的一个。先判断条件语句1是否为 True,为True就执行代码段1.否则就判断条件语句2是否为True,如果为True就执行代码段2,否则就判断条件语句3,依次类推。如果前面的条件都为False,就执行else后面的代码段n
注意:
1.后面的条件判断的前提是前面的条件不成立
2.这儿的elif可以有多个,else可以省略。
练习1:随机产生年龄并判断
import random
i =1
while i <10:
age = random.randint(0,100)
if 18 <= age <= 60:
print("已经%s岁,成年了,红灯区可以进去"%age)
elif age > 60:
print("已经%s岁,红灯区不适合了"%age+"回去养老吧")
else:
print("才%s岁,未满18,少儿不宜" % age,"还是回家看吧")
i +=1
练习2:判断奇偶数
i =1
while i <10:
a = random.randint(-20,20)
b = 1
c = a & b
print(c)
if c == 1:
print("%s"%a+"是"+"奇数")
print("执行了第一段")
elif c == 0:
print("%s" %a + "是" + "偶数数")
print("执行了第二段")
i += 1
练习3:根据成绩进行分段:小于60分打印不及格,60-70及格,71-89良好,90及-90分以上优秀
i += 1
while i < 50:
score = random.randint(0,200)
if score < 60:
print("%s分,傻逼不及格"%score,end="\t")
elif score <= 70:
print("%s分,小伙子还可以"%score,end="\t")
elif score < 90:
print("%s分,哎哟不错额"%score,end="\t")
elif score <=100:
print("%s分,nice"%score,end="\t")
else:
print("%s分,装逼"%score,end="\t")
i += 1
print()
2 if嵌套
可以在if elif,else后面的代码段中,都可以再写其他的语句
练习4 如果一个数字是偶数就打印 偶数,否则打印 奇数。如果偶数还能被4整除,再打印4的倍数。
i = 1
while i < 50:
num = random.randint(0,200)
if num & 1 ==0:
print("%s是偶数"%num,end="\t")
if num % 4 ==0:
print("%s是偶数"%num,"且能被4整除")
else:
print("%s是偶数" % num, "但不能被4整除")
else:
print("%s是奇数"%num)
i += 1
练习 输入一个字符串,判断第一个字符是否是字母,如果第一个是大写的再大写 “大写字母”
注意此处可以生成随机字母
import string
import random
str1 = ''
i = 1
while i <10:
s = string.ascii_letters
str2 = random.choice(s)
str1+=str2
print(str1)
i += 1
first_str = str1[0]
print(first_str)
if first_str.isalpha():
print("%s是字母开头"%first_str,end="\t")
#if "A" < first_str < "Z":
if first_str.isupper(): #判断是否是大写
print("%s是大写"%first_str)
else:
print("%s不是大写"%first_str)
else:
print("德玛西亚")
3.for循环与while循环
某个操作需要重复执行
1.for循环
- a.语法
for 变量 in 序列
循环体
- b.说明:
for -关键字
变量 - 变量名(随便命名),满足变量名的要求
序列-可以是字符串、列表、元组、字典、集合、迭代器、rangge
循环体 -和for保持一个缩进的一条或者多条语句(需要重复执行) - c.执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值,一次执行循环体(for 循环中,序列中的个数,决定了循环的次数)
序列中内容控制变量每次取到的值
-d.如果for循环后面的变量取到的值,在循环体里面不使用,那么这个变量命名 的时候用一个_来命名。
for x in "abc":
print(x,end="\t")
print("=*=")
依次取值 “a“,“b“,“c“
取三次。
- e.2.range(范围):
range(n)—产生一个数字序列,序列中的内容是 0到n-1.
range(m,n) -产生一个数字序列,列中的内容是 m到n-1.
range(m,n,step) -产生一个数字序列,列中的内容是 m开始,每次加step到n前为止.
range一般用在:- a.需要产生指定范围的数字序列
- b.单纯的控制for循环的循环次数
for i in range(10000):
print(i,end='\t')
print("**"*i)
for i in range(200,500):
print(i,end='\t')
print("**" )
print("**"*i)
for i in range(200,500,3):
print(i,end='\t')
print("**" )
练习1.练习:求 1+2 +3 +0...100
sum1 = 0
for i in range(1,101):
sum1 += i
print(sum1)
练习2.练习求和
sum2 = 0
for i in range(0,101,2):
sum2 += i
print(sum2)
sum2 = 0
for i in range(0,101,2):
sum2 += i
print(sum2)
sum2 = 0
for i in range(1,101):
if i % 2 ==0:
sum2 += i
print(sum2)
sum3 = 0
for i in range(1,101):
if not i & 1:
sum3 += i
print(sum3)
练习3.求用for循环统计字符串中数字的个数。>数字字符的个数是几个。
方法1:
a = "dahsd45sdjfd656gfdhgh"
b = ''
for x in a:
if x.isdigit():
b+=x
else:
print("不是数字字符")
print(b)
print(len(b))
方法2:
a = "dahsd45sdjfd656gfdhgh"
b = []
for x in a:
if x.isdigit():
b.append(x)
else:
print("不是数字字符")
print(b)
print(len(b))
方法3:
a = "dahsd45sdjfd656gfdhgh"
count = 0
for x in a:
if x.isdigit():
count +=1
else:
print("%s不是数字字符"%x)
print("数字字符出现了%d次"%count)
2.while循环
- a.语法
while 条件语句:
循环体
- b.说明
while 关键字
条件语句 有结果的表达式(除了赋值语句,一般的表达式都行)
:- 固定语法
循环体 - 和whil保持一个缩进的一条或者多条语句(会被重复执行) - c.执行过程:
先判断条件语句是否为True,为true就执行循环体;
执行完循环体再判断条件语句是否为True,为True又执行循环体。
以此类推,直到判断条件语句的结果为False,整个循环就结束。
练习. 1 2 3 4 5 6 7
num = 0
while num <= 100:
print("傻逼X%s"%num)
num += 1
练习 1* 2* 3* 4* 5* 6* 7
num1 = 1
cj= 1
while num1 <= 7:
cj *= num1
num1 +=1
print(cj)
练习 获取字符串字符串abc123中的字符
str1 = 'abc123'
num3 = 0
num4 =len(str1)-1
print(num4)
while num3 <= num4:
print(str1[num3],end="\t")
num3 +=1
3.for 循环与 while的选择
python中 for循环能做的,while循环都能做。但是while循环能做的,for循环不一定能做。
for循环的两种情况:
a.获取序列中的元素(值)
b.循环次数的确定。
小程序压压惊:
a =5
for i in range(a):
a +=1
print("sss")
练习 程序可以不断输入,直到输入的值为0退出。
a = input("请输入:")
while int(a) !=0:
a = input("请输入:")
print("通关")
while True:
a = input("请输入:")
if int(a) == 0:
break
print("通关")
flag = True
while flag:
a = input("请输入:")
if int(a) == 0:
flag = False
print("通关")
4 continue\break\else
1.continue
功能:continue是一个关键字,只能写在循环体中
功能:当循环执行过程中遇到continue,会结束当次循环,直接进入下次循环的判断
(直接进入下次循环的判断:for循环就是用变量取下一个值,while循环就是直接判断条件语句是否为 True)
for 变量 in 序列
语句1
语句1
continue
语句1
while 变量 in 序列
语句1
语句1
continue
语句1
练习
x = 1
cj = 1
for x in range(100):
if x % 2 == 0:
continue
cj *= x
print(cj)
2.break 是一个关键字,只能写在循环体
功能:当循环循环过程中遇到break,整个循环直接结束。
num1 = 1
cj = 1
while True:
cj *= num1
if cj >= 100:
break
print(num1)
num1 += 1
print(num1,cj)
3 else
- 语法:
while 条件语句:
循环
else:
代码段
for 变量 in 序列:
循环体
else:
代码段
- b:执行过程
else结构不会影响原循环执行过程。当循环自然死亡的时候就会执行else后面的代码段。
循环因为遇到break结束的时候,不会执行else代码段。
cj = 1
for x in range(1,10):
cj *= x
else:
print('执行完了',end=" ")
print(cj)
网友评论