虽然起步有点晚,但是终于开始学习Python了,本系列文章作为我的学习笔记,主要是为了自己温故知新用,同时也与感兴趣的你们进行分享。

  11、分支结构

直接举个多分支结构的例子吧,多分支结构会了,单分支和双分支自然也就会了,例子如下:

score = int(input('请输入您的分数:'))

if score>=90 and score<=100 :
    print('等级:优秀')
    print('评语:继续加油,再接再厉!')
elif score>=80 and  score<=90 :
    print('等级:良好')
    print('评语:加油!')
elif 60 <= score <= 80:
    print('等级:合格')
    print('评语:还需加油!')
else:
    print('等级:不合格/非法输入')
    print('评语:不要气馁,继续加油')

输入90时,运行结果如下:

请输入您的分数:90
等级:优秀
评语:继续加油,再接再厉!

 输入50时,运行结果如下:

请输入您的分数:50
等级:不合格/非法输入
评语:不要气馁,继续加油

关于上面的例子,有以下几点需要注意的地方(序号与下图相对应):
   ① :input默认输入为str型,需要转换成int型再进行比较
   ② :判断语句末尾不要忘记加冒号 :
   ③和④:在编程语言中对于某个范围内的数据,一般采用标号③处的格式,但是在Python中支持更简单的格式,如标号④处所示,在Pycharm中前两行判断语句下都加了波浪线,提示有更简洁的方式,即④处所示的格式
   ⑤在C/C++语言中通过{}来判断属于该判断语句的执行部分,而在Python中,通过缩进来判断,如⑤处所示 print(‘等级:优秀’)和 print(‘评语:继续加油,再接再厉!’) 均为条件score>=90 and score<=100 成立时要执行的语句

在这里插入图片描述

再来看一个简单的分支嵌套的例子,Python中的分支嵌套依然是通过缩进来实现的,例子如下:

score = int(input('请输入您的分数:'))
Last_score = int(input('请输入您上一次的分数:'))
if 90 <= score <= 100:
    print('等级:优秀')
    if score>Last_score:
      print('评语:继续加油,再接再厉!')
    else:
      print('评语:脚踏实地,再接再厉!')
else:
    print('评语:要加油哦!')

依次输入98、96时,运行结果如下:

请输入您的分数:98
请输入您上一次的分数:96
等级:优秀
评语:继续加油,再接再厉!

12、条件表达式

   看一个简单的条件表达式的例子,条件表达式比分支结构要简洁一点,例子如下:

score = int(input('请输入您的分数:'))
Last_score = int(input('请输入您上一次的分数:'))
print("继续加油,再接再厉! " if score > Last_score else '脚踏实地,再接再厉!')

 条件表达式的格式如下图所示,红色框内的是判断结构,如果成立,则执行红框前的内容,如果不成立则执行红框后的内容

在这里插入图片描述

13、pass语句

   语句什么都不做,只是一个占位符,用在语法上需要语句的地方,当某条语句我们还没想好怎么写的时候可以先写pass,然后等想好了再将pass替换为真正的语句,这样做程序不会报错,例子如下:

score = int(input('请输入您的分数:'))
if 90 <= score <= 100:
    pass
    print('评语:继续加油,再接再厉!')

14、range()函数


   (1)range()函数用于生成一个整数序列
   (2)创建range对象的三种方式:
   ① range(stop) :创建一个[0,stop)之间的整数序列,步长为1
   ② range(start,stop) :创建一个[start,stop)之间的整数序列,步长为1
   ③ range(start,stop,step) :创建一个[start,stop)之间的整数序列,步长为step
   (3)range函数的优点:不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要存储start,stop和step,只有当用到range对象时,才会去计算序列中的相关元素
   (4)使用list()函数可以查看序列中的数据,具体的例子如下:

a1 = range(10)
a2 = range(1, 10)
a3=range(1, 10, 2)
print('a1:',list(a1))
print('a2:',list(a2))
print('a3:',list(a3))

运行结果如下:

a1: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
a2: [1, 2, 3, 4, 5, 6, 7, 8, 9]
a3: [1, 3, 5, 7, 9]

 可以发现产生的数据是大于等于参数start,而小于stop的

   (5)使用in或not in 可以判断数据是否在产生的序列中,如:

a1 = range(10)
print('a1:',list(a1))
print('10是否在当前的队列a1之中:',10 in a1)

运行结果如下:

a1: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
10是否在当前的队列a1之中: False

(6)我们通常使用range()函数作为循环遍历的对象

  15、while循环

   来看一个简单的例子:

a=1
while a<10 :
    print(a)
    a+=2

运行结果如下:

1
3
5
7
9

16、for-in循环

 (1)for-in表达从(字符串、序列等)中依次取值,又称为遍历 for-in遍历的对象必须是可迭代对象,for-in的语法结构:for自定义的变量 in 可迭代对象:

 字符串例子:

for a in 'hello X2' :
    print(a)

运行结果如下:

h
e
l
l
o
 
X
2

序列例子:

for a in range(10) :
    print(a)

运行结果如下:

0
1
2
3
4
5
6
7
8
9

(2)如果用不到自定义的循环变量,可用下划线代替:

for _ in range(5) :
    print('ILY')

运行结果如下:

ILY
ILY
ILY
ILY
ILY

17、break语句

   流程控制语句break语句,用于结束循环结构,通常与分支结构if一起使用

for _ in range(3):
    mima=int(input("请输入密码:"))
    if mima==666:
        print('密码正确')
        break
    else:
        print("密码不正确")

第一次输入777,第二次输入666,运行结果如下:

请输入密码:777
密码不正确
请输入密码:666
密码正确

 18、continue语句

   continue用于跳过本次循环剩余的部分,而break用于结束整个循环,如下面的例子只要不是5的倍数 求余数后值就不为0,符合if的条件,执行continue语句,continue语句后面的语句print(date)就被跳过了

for date in range(5, 21):
    if date % 5:
        continue
    print(date)

运行结果如下:

5
10
15
20

19、while/for和else的搭配
   在前面我们已经接触过if与else的搭配,其实else还可以跟for或者while搭配,只要for或者while正常结束(也就是没有被break打断而结束),就执行else后的语句,如下面的例子只有三次密码都输入错误(也就是break语句没有执行),才会执行与while/for对齐的那个else后的内容:

for _ in range(3):
    mima=int(input("请输入密码:"))
    if mima==666:
        print('密码正确')
        break
    else:
        print("密码不正确")
else:
     print("对不起,三次密码均输入错误,设备将被锁定")

 当输入为777、888、1234时,运行结果如下:

请输入密码:777
密码不正确
请输入密码:888
密码不正确
请输入密码:1234
密码不正确
对不起,三次密码均输入错误,设备将被锁定

 当输入为666时,运行结果如下:

请输入密码:666
密码正确

20、循环嵌套

   (1)下面看一个简单的循环嵌套的例子,打印一个9x9乘法表,其中end= 表示不换行输出,‘\t’是制表符

for i in range(1, 10):
    for j in range(1, 1 + i):
        print(j, '*', i, '=', i * j, end='\t')
    print()

 运行结果如下:

1 * 1 = 1	
1 * 2 = 2	2 * 2 = 4	
1 * 3 = 3	2 * 3 = 6	3 * 3 = 9	
1 * 4 = 4	2 * 4 = 8	3 * 4 = 12	4 * 4 = 16	
1 * 5 = 5	2 * 5 = 10	3 * 5 = 15	4 * 5 = 20	5 * 5 = 25	
1 * 6 = 6	2 * 6 = 12	3 * 6 = 18	4 * 6 = 24	5 * 6 = 30	6 * 6 = 36	
1 * 7 = 7	2 * 7 = 14	3 * 7 = 21	4 * 7 = 28	5 * 7 = 35	6 * 7 = 42	7 * 7 = 49	
1 * 8 = 8	2 * 8 = 16	3 * 8 = 24	4 * 8 = 32	5 * 8 = 40	6 * 8 = 48	7 * 8 = 56	8 * 8 = 64	
1 * 9 = 9	2 * 9 = 18	3 * 9 = 27	4 * 9 = 36	5 * 9 = 45	6 * 9 = 54	7 * 9 = 63	8 * 9 = 72	9 * 9 = 81	

(2)注意:二重循环中的break和continue用于控制本层循环,比如内层循环中的break和continue并不影响外层循环