目录
程序运行三大结构流程:
首先再看我们的语法结构之前,我们要先了解以下我们程序运行的基本流程,在的Python程序,总共有三种实现代码的流程
按顺序实现:
按顺序实现就是一行一行代码从上往下按顺序实现。
分支实现:
分支就是当程序实现的下一步有多条路径时,程序会根据我们预设的条件选择走其中一条路径的流程。
循环实现:
循环实现就是程序会在某个特定的语句进行反复实现,直到达到某种预定的条件。
逻辑运算符:
在了解结构之前,我们先来了解一下逻辑运算符:and、or、not
逻辑运算符中的and表示的是数学中的与,就是and前后的条件都要成立才能返回真;而or表示的是数学中的或,就是两条件任意一个成立结果就为真;而not表示的是非,就是将真变假,假变真。
运算符 | 用法 | C语言中对应的运算符 |
and | 条件1 and 条件2 | && |
or | 条件1 or 条件2 | || |
not | not 条件 | ! |
对于这几个运算符的检验,我们可以通过下面的程序来反复测试:
if语句的定义和结构:
if语句的定义:
if在英语中有如果,假设的意思。放到Python中,if保留了原来表示判断的意思,其可以作为一个分支的入口条件。其中与它常一起用的还有else,当if不满足时就会进入else语句执行。
其中if语句的语法结构是:if后面跟一个判断条件,在条件末尾加上一个冒号,然后在下一行前空四个空格的距离开始编写if语句的内容。然后与if同样左对齐的正下方输入else并且在下一行以同样的四个空格距离编写else里的内容:
if 判断条件:
内容1...
else:
内容2..
对于if语句的使用,Python与C语言不同,C语言会使用大括号{}来对if语句的内容进行包含,但是在Python中,if语句的内容是没有括号来括起的,这样我们就要格外注意哪里是if语句的内容:这里Python中认为在if语句判断条件下缩进的语句都算是if语句的内容:
例如上框内红色部分都算上是if语句的内容,而下面顶格的else就不算是if的内容了。
if语句的分支结构设计:
其次,与C/C++类似,Python里的if语句也可以进行多个分支的假设,在C语言中,使用的是else if来判断,但是在Python中,我们就使用简化的elif关键字来进行多分枝设计,它的使用方法与前面的if和else都一样,关键字+判断条件+冒号。下面举个例子简要阐述在C++、C语言和Python中的区别:
C++:
#include<iostream>
using namespace std;
int main()
{
int a = 30;
if (a > 30)
cout << ">30" << endl;
else if (a == 30)
cout << "=30" << endl;
else
cout<<"<30" << endl;
return 0;
}
C语言:
#include<stdio.h>
int main()
{
int a = 30;
if (a > 30)
printf(">30");
else if (a == 30)
printf("=30");
else
printf("<30");
return 0;
}
Python:
a = 30
if a>30:
print(">30")
elif a==30:
print("=30")
else:
("<30")
if语句的嵌套:
最后是if语句的多层嵌套使用,if语句既然可以代表一层里的分支,那么理所当然地,if语句也能代表多层里的分支,即多重选择,多重分支。下面是一个if语句里嵌套一个if语句的方法:它代表一次猜拳过程,系统开始会得到两个数据,一个是玩家的出拳数据,一个是电脑的出拳数据,我们设定拳头为1,剪刀为2,布为3。第一层判断为判断是否平局,若否,则进入第二层判断,第二层判断为谁赢。所有下面的程序中包含了两层嵌套。
import random
Peo = int(input())
Com = random.randint(1,3)
if(Peo==Com):
print("平局")
else:
if((Peo==1 and Com==2)
or (Peo==2 and Com==3)
or (Peo==3 and Com==1)):
print("player,win")
else:
print("computer,win")
循环结构:
循环的定义和结构:
循环结构一般由三个要素组成,循环条件、循环内容、循环条件处理。循环条件指的是我们能够进入循环的判断条件,这也是一个限制死循环(即无休止循环)的重要条件。循环内容是我们每一个循环里面要做的工作。而循环条件处理是在每次循环内容实现后对进入循环的判断条件的处理。
下面是一个基本的循环结构分析:
其中初始条件一般选择为0,考虑到以后可能遇到的边界条件,我们使用从0开始将会给我们带来很大的方便 。
break和continue:
break关键字代表立即结束循环,也就是说,不论循环进行得怎么样,一旦遇到了break,当前一层循环将立即终止。如下图的演示案例,当i增加到16时,循环就会终止:
而continue关键字则代表终止当前一次循环,也就是说,如果满足continue的条件,那么当前的一次循环将会立即终止进行下一次循环。也就是说continue下面的语句都将看不到:下面的代码就表示从进行5次循环,并且每次都把当前计数器的值输出。这里要格外注意,Python的计数方式和C语言不同,它的计数器如果在continue时都没进行变化,那么将会陷入死循环(如下图2),所以我们要注意将计数器放到continue前的合适位置


循环嵌套:
所谓循环嵌套就是循环中再加一个循环,即有两层的循环,最常见的循环嵌套的例子就是打印输出一个99乘法表,其中它的原理就是两层循环的嵌套使用:

i = 1
while i<10:
j = 1
while j<i+1:
print("%d * %d = %d"%(j,i,i*j),end="\t")
j+=1
print("")
i+=1
这里有个细节,pirnt函数每调用一次就会自动换行,要想它不换行可以将它末尾默认自带的\n使用end=""的方式代替成“”,即什么都没有,这里为了垂直对齐我换成了\t。