流程控制

条件判断语句

- 顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。

- 单分支语句

- 语法:

if 表达式:
  代码块

- > 说明:
>
> 1、“表达式”可以是一个单一的值或者复杂语句,形式不限,但解释器最后会通过`bool`获取一个`true`或者`false`的布尔值
>
> 2、“代码块”由:与具由相同缩进标识的若干条语句组成(一般是四个缩进)。

#场景:如果明天下雨,我们就去钓鱼
# if 明天下雨---条件:
#     钓鱼

num = int(input('enter a num:'))
if num > 10:
    print('num大于10')

- 双分支语句

- 双分支语句顾名思义,二条分支二选一执行!语法格式:

if 表达式:
  代码块 1
else:
  代码块 2

#if(如果)-else(否则)
#场景:如果明天下雨,我们就去钓鱼,否则就在家睡觉
# if 明天下雨---条件:
#     钓鱼
# else:
#     回家睡觉

num = int(input('enter a num:'))
if num > 10:
    print('num大于10')
else:
    print('num小于等于10')

- 多分支语句

- 多分支即从比双分支更多的分支选择一支执行。语法格式:

if 表达式 1:
  代码块 1
elif 表达式 2:
  代码块 2
elif 表达式 3:
  代码块 3
...# 其它elif语句
else:
  代码块 n

 

- 案例:猜数字游戏

num = 9
gus = input('enter a num:')
gus = int(gus)
if gus > 9:
    print('您猜的数字大了')
elif gus == 9:
    print('您猜对了')
else:
    print('您猜的数字小了')

循环控制语句

在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。

Python语言中的循环语句支持 while循环(条件循环)和for循环(遍历循环)。

while循环,条件循环,循环循环次数不确定的情况下使用

- 语法:

while 表达式:
  循环体

 

 

- 案例:循环打印十遍"hello world"

i = 0
while i < 10: #while关键字后面的代码是条件
    #下面两行代码:循环体(用来被重复执行)
    print('hello world!')
    i = i + 1
    #执行步骤:1.判断条件是否成立,如果条件成立  2.执行循环体  3.判断条件  4.执行循环体....n.条件不成立,结束循环

 

- 案例:求解1-10累加和

i = 1
sum = 0 #保存累加后的和
while i <= 10:  #i取值范围1-10
    #第n次循环,sum保存的就是前n个数之和
    sum = sum + i #sum += i
    i += 1  #步进语句
print(sum)

 

- 将列表中所有的偶数进行输出

alist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
index = 0
while index < 10:
    if alist[index]%2 == 0:
        print(alist[index])
    index += 1

 

for循环,遍历循环,循环循环次数确定的情况下使用

- 语法格式

for 迭代变量(任意的变量) in 字符串|列表|元组|字典|集合:# 循环的次数取决于in后面容器中的元素个数。
  代码块

- 格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循环结构联用,因此代码块又称为循环体。

for i in "hello world":
    print(i)

for name in ["张三",'李四',"王五"]:
    print(name)
    
for i in range(10): # range函数
    print(i)
#将1-100之间所有的偶数进行输出
# i = 1
# while i <= 100:
#     if i % 2 == 0:
#         print(i)
#     i += 1

for i in range(1,101):
    if i % 2 == 0:
        print(i)

 

数据库会用到:mysql,redis,mongo

死循环

- 永远都不会结束的循环。
- 但有我们是会需要无限循环。例如Web服务器响应客户端的实时请求。

循环嵌套

- f判断可以嵌套,while和for当然也可以嵌套。但是建议大家不要嵌套3层以上,那样的效率会很低。

# 循环嵌套
for i in range(3): #外层循环
    # 外层循环的循环体
    for j in range(2):#内层循环
        #内层循环的循环体
        print('hello tian')

# 外层循环的循环体的执行次数:3次
# 内层循环的循环体的执行次数: 2次

 

退出循环

如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字。

- break

- 通常情况下的循环要么执行出错,要么死循环,要么就只能老老实实等它把所有的元素循环一遍才能退出。如果想在循环过程中退出循环,怎么办?用break语句!
- break只能用于循环体内。其效果是直接结束并退出当前循环,剩下的未循环的工作全部被忽略和取消。注意当前两个字,Python的break只能退出一层循环,对于多层嵌套循环,不能全部退出。

for i in [1,2,3,4,5]:
    if i == 3:
        break  #强制结束整个循环
    print('i love you'

- Continue

- 与break不同,continue语句用于跳过当前循环的剩余部分代码,直接开始下一轮循环。它不会退出和终止循环,只是提前结束当前轮次的循环。同样的,continue语句只能用在循环内。

 

for i in [1,2,3,4,5]:
    if i == 3:
        continue  #结束当次循环,开始下一次新的循环
    print('i love you')

案例1:实现完整的猜数字游戏 

规则如下:
- 可以不间断的进行猜数字游戏环节,找到猜对了,结束程序,猜不对,可以不断的进行游戏,并且需要提示用户猜打了还是猜小了。
- 拓展功能实现:
- 1.最后需要统计出,用户猜了多少次才猜对。
- 2.每一个用户的初始分数为100,每猜错一次扣5分,最后程序结束,统计用户的得分

'''
    规则如下:

- 可以不间断的进行猜数字游戏环节,找到猜对了,结束程序,猜不对,可以不断的进行游戏,并且需要提示用户猜打了还是猜小了。
- 拓展功能实现:
  - 1.最后需要统计出,用户猜了多少次才猜对。
  - 2.每一个用户的初始分数为100,每猜错一次扣5分,最后程序结束,统计用户的得分
'''
import random
#num是一个0-10之间的随机数
num = random.randint(0,10)
count = 0 #记录猜的次数
score = 100 #初始分值
while True:
    count += 1#记录猜的次数
    guess = int(input('please guess a num:'))
    if guess == num:
        print('恭喜您,猜对了')
        print('一共猜了%d次'%count)
        print('总得分:',score)
        break
    elif guess < num:
        print('猜小了')
        score -= 5
    else:
        print('猜大了')
        score -= 5

 

我的代码:

import random

"""
 规则如下:

- 可以不间断的进行猜数字游戏环节,找到猜对了,结束程序,猜不对,可以不断的进行游戏,并且需要提示用户猜打了还是猜小了。
- 拓展功能实现:
  - 1.最后需要统计出,用户猜了多少次才猜对。
  - 2.每一个用户的初始分数为100,每猜错一次扣5分,最后程序结束,统计用户的得分
"""
num = random.randint(1, 10)
score = 100
count = 0
while 1:
    count += 1
    i = int(input("猜一个数字:"))
    if i == num:
        print("恭喜您,猜对了!")
        break
    elif i < num:
        print("猜小了")
        score -= 5
    else:
        print("猜大了")
        score -= 5
print('一共猜了%d次' % count, '\n' '总得分:%d' % score)

 

posted @ 2023-10-29 22:05  氨糖  阅读(8)  评论(0编辑  收藏  举报