day5 分支循环结构

2018-11-10  本文已影响0人  遇见那天的雨真大

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循环

for  变量 in 序列
    循环体
for x in "abc":
    print(x,end="\t")
    print("=*=")

依次取值 “a“,“b“,“c“
取三次。
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循环

while 条件语句:
      循环体
练习. 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:
    代码段
cj = 1
for x in range(1,10):
    cj *= x
else:
    print('执行完了',end=" ")
print(cj)
上一篇下一篇

猜你喜欢

热点阅读