Python04分支、循环、条件与枚举

本文详细介绍了Python中的条件控制结构,包括if、if...else、elif的使用,并强调了避免程序嵌套的编程习惯。同时,文章深入讲解了循环控制,涵盖while循环和for循环,以及它们与else子句的结合,展示了各种示例,提醒读者注意防止死循环。此外,还提到了break和continue在循环中的作用,并给出了两个练习题目:无限列表打印间隔数列和蒙特卡罗方法计算e自然对数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

条件控制

if

if 结果为bool值的语句:
【前面必须有四个空格】一个命令行
【前面必须有四个空格】第二个命令行

#可以是pass

例:
mood = true
if mood :
    print('go to left')
    print('back away')

if else

if 结果为bool值的语句:
【前面必须有四个空格】一个命令行
【前面必须有四个空格】第二个命令行

#可以是pass

else:

【前面必须有四个空格】一个命令行
【前面必须有四个空格】第二个命令行

例:
mood = true
if mood:
    print('go to left')
    print('back away')
else:
    print('go to right ')
示例:
'''
每个模块前应该有一段描写模块意义的文字
常量(constant)固定不变,应该大写,
'''
ACCOUNT = 'qiyue'
PASSWORD = '123456'
'''
input()函数 是收取输入值的函数
python推荐命名空格使用_替代
'''
print('please input  account')
user_account = input()
print('please input  password')
user_password = input()
'''
:前不应该加空格
运算符左右应该加空格
'''
if (user_account == ACCOUNT) and (user_password == PASSWORD):
    print('success')
else:
    print('fail')

对于程序嵌套,应该尽量避免,转而使用函数或者elif和字典等,编程习惯

elif

示例:
#此示例中,多层嵌套,引入:elif=else+if
a = input()
a = int(a)
if a == 1:
    print('apple')
else:
    if a == 2:
        print('banana')
    else:
        if a == 3:
            print('orange')
        else:
            print('shopping')
示例:

引入:elif=else+if,elif必须和if配对使用
在python里面没有switch
也可以选择字典解决

a = input()
a = int(a)
if a == 1:
    print('apple')
elif a == 2:
    print('banana')
elif a == 3:
    print('orange')
else:
    print('shopping')

vscode快捷键:ctrl+C可以强制停止一个程序(特别是无限循环时)

循环控制

while

while 结果为bool值的语句:
【前面必须有四个空格】一个命令行
【前面必须有四个空格】第二个命令行

可以是pass
在递归中适合使用while
while非常容易造成死循环

示例:

当while执行一遍后将继续判断a是否还是true,如果是,将执行下一遍,造成死循环

a=true
while a:
    print('done')

如何避免while造成死循环,避免判断语句是一个常量,在代码块中需要有能够影响代码块变量的命令
示例:

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

while后面可以接else使用

示例:
a=1
while a<=10:
    a +=1
    print(a)
else:
    print('EOF')

for

for 数值 in 序列:

【前面必须有四个空格】一个命令行
【前面必须有四个空格】第二个命令行

可以是pass
for主要用来遍历/循环 序列或者集合,字典

示例:
a = ['apple','orange','banana','grape']
for i in a;
    print(i)

for打印两层列表

示例:

print默认打印出列,加end=’'可更改为打印成行

a =[ ['apple','orange','banana','grape'],(1,2,3)]
for i in a;
    for j in i;
        print(j,end='')

for后面可以接else使用

示例:

当for循环中的所有命令执行结束后,执行else

a =[ ['apple','orange','banana','grape'],(1,2,3)]
for i in a;
    for j in i;
        print(j,end='')
else:
    print('END')

终止for语句的遍历

示例:

结束循环语句使用break,后续else也不会执行,执行结果:1
break只结束一层for循环

a = [1,2,3]
for x in a:
    if x==2
        break
    print(x)

跳过for语句的遍历

示例:

跳过循环语句使用continue,后续else会执行,执行结果:1 3

a = [1,2,3]
for x in a:
    if x==2
        continue
    print(x)

一段代码执行十次

示例:

与c#中 for(i=0; i<10; i++){} 等效
range函数(a,b) a表示起始值,b表示偏移量

#连续1到10
for x in range(0,10):
    print(x)

间隔range函数(a,b,c) a表示起始值,b表示偏移量,c表示步长

for x in range(0,10,2):
    print(x)

反向range函数(a,b,c) a表示起始值,b表示偏移量,c表示步长

for x in range(10,,0,-2):
    print(x)
习题1

无限列表打印间隔数列

a = [1,2,3,4,5,6,7,8]
for i in range(0,len(a),2):
      print(a[i],end=' | ')

b = a[0:len(a):2]
print(b)

得到列表[1,3,5,7]
高级代码要求:高性能,封装性好(可复用性搞),编程习惯

习题2

蒙特卡罗方法计算e自然对数

from random import *
DARTS = 1024*1024
count = 0
for i in range (DARTS):
    x = uniform(1,2)
    y = uniform(0,1)
    if x*y < 1:
        count += 1
e = pow(2 , DARTS/count)
print("{}".format (e))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值