> 文章列表 > Python基础之分支循环

Python基础之分支循环

Python基础之分支循环

1.分支

1.1 判断条件,若条件成立,执行其包含的某条语句或者代码块

其代码结构如下图
Python基础之分支循环
实例
Python基础之分支循环
执行结果

我在里面
我也在里面~
我在外面~

1.2 判断条件,若条件成立,执行其包含的某条语句或者代码块,若条件不成立,执行另外的某条语句或者代码块

其代码结构如下图
Python基础之分支循环
实例
Python基础之分支循环
执行结果

乐乐哥不是小姐姐!

1.3 判断多个条件,如果第1个条件不成立立,则继续判断第2个条件,如果第2个条件还不成立则接着判断第3个条件.……

其代码结构如下图
Python基础之分支循环
实例第一种写法及流程图
Python基础之分支循环
实例第二种写法及流程图
Python基础之分支循环

1.4 第4种是在第3种的情况下添加一个else表示上面所有的条件均不成立的情况下,执行某:条语句或某个代码块

其语法结构如下
Python基础之分支循环
实例
Python基础之分支循环
执行结果

请输入你的分数:108
请输入0~100之间的分值!

1.5 条件成立时执行的语句 + if + condition + else + 条1件不成立时执行的语句

看下面两种写法,实例1
写法1

>>> age = 16
>>> if age < 18:print("抱歉,未满18周岁禁止访问,")
else:print("欢迎您来O")
抱歉,未满18周岁禁止访问,      //执行结果

写法2

>>> age = 16
>>> print("抱歉,未满18周岁禁止访问,") if age < 18 else print("欢迎你来O")
抱歉,未满18周岁禁止访问,          //执行结果

以上两种写法,执行结果都一致,但是写法2的语句只有一句,而写法1有四句,所以在此看来第二种写法更方便,执行效率更高;
实例2上代码

>>> a = 3
>>> b = 5
>>> if a < b:small = a
else:small = b
>>> print(small)
3
>>> small = a if a < b else small = b            //看似没有问题,为什么报错呢?这种写法的错误在哪里??
SyntaxError: can't assign to conditional expression

注意: 当if后面的条件成立时small = a,条件不成立small = b

>>> small = a if a < b else small = b            

大家可否记得java中的三目表达式

small = (a > b) ? 2 : 3   //若a>b时,small=2 若a>b不成立,则small=3

由此大家可以看出上面的语句的问题所在吗?那咱们一起看看它的执行顺序
small = a a<b 成立
small = small = b a<b不成立
也就是说small = ???后面的内容取决于if后边的条件是否成立,条件成立small = a没有问题,当条件不成立时,small = (small = b)就相当于是把后面的(small = b)当成一个整体赋值给small,而这样的语法在python是有错误的,看下面的报错语句

>>> small = (small = b)
SyntaxError: invalid syntax

正确写法

>>> small = a if a < b else b                   //当条件不成立时,直接将b的值赋值给small
>>> print(small)
3

2. 循环

2.1 while循环

语法结构如下图所示:
Python基础之分支循环
**实例1:**循环条件成立继续执行,不成立则结束

>>> love = "yes"
>>> while love == "yes":love = input("今天你还爱我吗?")       //输入yes程序继续,输入yes以外的内容程序结束今天你还爱我吗?yes
今天你还爱我吗?yes
今天你还爱我吗?no

**实例2:**实现从1一直累加到1000000的结果

>>> i = 1
>>> sum = 0
>>> while i <= 1000000:sum += i               //等价于sum = sum + ii += 1                 //等价于i = i + 1>>> print(sum)             //将最终的累加结果打印出来
500000500000

==break语句的使用:==直接跳出循环

>>> while True:answer = input("哈喽,我可以下班了吗?")if answer == "可以":break                   //当上一句的if语句条件成立时,出触发break语句,直接跳出循环print("好累啊!")            //当执行break时,这行语句不会执行,说明程序已经跳出此循环哈喽,我可以下班了吗?继续
好累啊!
哈喽,我可以下班了吗?加油哦
好累啊!
哈喽,我可以下班了吗?不幸和
好累啊!
哈喽,我可以下班了吗?坚持
好累啊!
哈喽,我可以下班了吗?努力家班
好累啊!
哈喽,我可以下班了吗?可以
>>> 

==continue语句的使用:==跳出本轮循环
实例

>>> while i < 10:i += 1if i % 2 == 0:continue      //当上面的if条件成立时触发continue语句,会跳出本轮循环,执行下一轮的循环print(i)          //if语句的条件不成立时执行1
3
5
7
9
>>> 

2.2 嵌套循环

**实例:**九九乘法表

i = 1
while i<= 9:j = 1while j <= i:    //当j<i时,所有的内容在一行显示print(j, "*", i, "=", i*j, end='  ') //将结果打印出来,end='  '代表将print自带的末尾加一个换行转化为在末尾添加两个空格显示j += 1print()i += 1

关于end=“”

2.3 for循环

其代码结构为如下图所示:
Python基础之分支循环
前提知识: range()函数
注意range()带一个参数的函数生成的数据是从零开始的,所以要生成0-10 的数据队列,其中的参数应该是11

1.range(stop) 会生成一个从0-stop的一个整数序列,是一个整数数据数列
比如生成1-10的一个数据队列,如下代码

>>> xulie = range(11)    //将生成的数据队列对象赋值给xulie
>>> for i in xulie:      //对数据对象进行for循环遍历print(i)             //打印数据对象的所有值0
1
2
3
4
5
6
7
8
9
10
>>> 

2.range(start, stop)会生成一个从start-stop的一个整数序列
比如生成5-15的一个数据队列

>>> xulie = range(5,15)  //生成一个5-15的数据队列(不包含15),并赋值给xulie
>>> for i in xulie:   //遍历数据对象print(i)          //打印输出数据对象的内容5
6
7
8
9
10
11
12
13
14
>>> 

3.range(start, stop, step)会生成一个从start开始,每次以step的步调递增或者递减的序列
比如生成一个从2开始每次以3为步调的序列

>>> xulie = range(2, 13, 3) //生成一个以2开始且步调为3的且13为截止的数据对象,并赋值给xulie
>>> for i in xulie:         //遍历xulie的每一个数据print(i)2
5
8
11
>>> 

for循环实例1: 实现1-1000000的叠加和

>>> sum = 0         //定义加和变量
>>> for i in range(1000001):     //遍历每一个加和变量sum += i                     //实现累加>>> print(sum)                   //打印最终结果
500000500000
>>> 

for循环实例2: 实现找出2,10之间的素数

>>> for n in range(2,10):for x in range(2,n):if n % x == 0:print(n, "=", x, "*", n//x)        //能别其他数整除说明不是素数break                              //不是素数则跳出本层循环else:print(n,"是一个素数")         //内层循环都执行一次且程序跳出本层循环执行else模块,说明这个数是素数,打印输出2 是一个素数
3 是一个素数
4 = 2 * 2
5 是一个素数
6 = 2 * 3
7 是一个素数
8 = 2 * 4
9 = 3 * 3