分支结构和循环结构

分支结构

  如果我们需要对用户输入的数进行判断,以决定是否进行操作,那么我们就需要用到分支操作。
  在C语言中,if语句的写法应该是这样的

if(条件判断)
{
    ... ...
}

python中稍有不同,第一条件判断不用打括号,当然打括号也没有关系,第二没有花括号,那没有花括号的话,那怎么判断哪些是if的执行语句。

  在python中使用缩进来进行判断,缩进在其他的高级语言中更多的为了美观,是一种习惯,而不是一种规定,而在python中却变成了一种语法规则,具体如下:

if 条件判断:
    执行语句
    ... ...

  注意if的执行语句应该缩进相同的长度,否则会报错误。如下

x = 5
if x > 0:
    a = 2;
  a = a + 2;

编译器会报一个错误

    a = a + 2;
             ^
IndentationError: unindent does not match any outer indentation level

提示是缩进错误,缩进等级不匹配,因为两行语句的缩进不是一样长。所以在python中是不能随意缩进的。

  官方推荐的缩进长度是四个空格,注意不是一个tab长度,因为一个tab长度可能在不同的操作系统中有着不同的长度,不过你可以将你的编辑器的tab长度设置为4个空格。

  对了,不要忘了条件判断后的那个冒号,这个也是语法要求。

  如果我们需要根据输入以决定进行什么样的操作,那么就需要使用if-else语句。

if 条件判断:
    ... ...
else:
    ... ...

  同理,else执行语句也需要进行缩进,并且要求缩进长度是一样的,但是不要求和if的一样长。

  如果对于条件的判断不只一次,那么就需要使用嵌套分支结构,即

if 条件判断1:
    ... ...
	
elif 条件判断2:
    ... ...
	
...

else:
    ... ...

  下面以一个猜年龄的例子为例,如果用户输入的年龄大于实际年龄,那么输出"大了",如果小于实际年龄,则输出"小了",否则输出"猜中了"。

realage = 18;
inputage = input('Please input age:')  #用户输入年龄
inputage = int(inputage)  #将输入的字符转换为数字

if inputage < realage:
    print("小了")
elif inputage > realage:
    print("大了")
else:
    print("猜中了")

循环结构

  如果有一件工作需要重复的进行,比如打印输出100遍,当然你可以写一百遍print,这样的话代码非常的长,且代码的效率及其的低下,这个时候就可以使用循环结构,循环可以使用while,也可以使用for,二者各有其特点。

while

  while循环的语法为

while 条件判断:
    ... ...

  while循环同if,执行语句都是需要缩进的,需要注意的缩进问题同上。当条件判断为真(True)的时候,就执行循环的内容。现在演示打印100Hello World!

i = 100
while i > 0:
    print('Hello World!')
    i = i - 1

  上面的那个猜年龄的游戏每次只能进行一次,然后就必须再编译一次,我们可以使用循环,让用户不停的猜

realage = 18;
while True:
    inputage = input('Please input age:')  # 用户输入年龄
    inputage = int(inputage)  # 将输入的字符转换为数字
    if inputage < realage:
        print("小了")
    elif inputage > realage:
        print("大了")
    else:
        print("猜中了")

但是就是有一个问题就是,即使是你猜中了,它还是会让你猜,而我们需要在猜中的时候就退出循环,不再猜了,我们使用break语句,break语句的作用就是退出循环,代码如下:

realage = 18;
while True:
    inputage = input('Please input age:')  # 用户输入年龄
    inputage = int(inputage)  # 将输入的字符转换为数字
    if inputage < realage:
        print("小了")
    elif inputage > realage:
        print("大了")
    else:
        print("猜中了")
        break

  与break相似的还有continue语句,continue语句的作用是退出该次循环,即continue以后的循环语句不执行了,直接进行条件判断,是否继续循环,而break是直接退出循环。下面我想打印出1 2 4跳过了3,我们用循环结合continue实现,我们只要在要打印3的时候退出该次循环即可,如下:

i = 0
while i < 4:
    i = i + 1

    if i == 3:
        continue   #退出该次循环

    print(i)


1
2
4

  breakcontinue语句都被称作循环控制语句。

  除此之外,while循环后可以接一个else语句,如果是正常退出循环的,即不是通过break退出循环的,那么else中的程序会得到执行。

i = 5
while i > 0:
    i = i - 1
else:
    print('我是else语句')


我是else语句

for

  for循环的语法:

for 变量 in 迭代描述:
    ... ...

  迭代描述是一组值,变量会一一取这些值,对每个值执行一次循环。

  现用for循环打印1~10

for i in range(1,11):
    print(i)

  range(1,11)是一个列表,里面包含1~10,变量i会一一取其中的数,我们把i打印出来,就可以打印出1~10了。

  for循环中也可以使用breakcontinue语句进行循环控制,同样的在for循环也可以加上else语句,如果是正常退出循环的话,那么就执行else中的代码。

猜你喜欢

转载自blog.csdn.net/The_last_knight/article/details/84981435