python第二天

判断语句与循环控制

一、判断语句

1.if-else语句

典型双分支语句

 格式

#单分支
if 条件表达式:
    代码指令
    pass  #空语句
print('语句结束')
#双分支
if 条件表达式:
    代码指令
    pass  #空语句
else:
    代码指令
    pass
print('语句结束')

多分支语句

特征:

只要满足其中一个分支,就会自动退出本层的if语句结构(言外之意:必须执行其中一个分支)

至少有两个情况可以选择;

elif后面必须写上条件和语句(冒号)

else是选配,根据实际情况来填写(冒号)

举例:成绩等级分析

 score=int(input('请输入成绩:'))
 if score<60:
     print('该成绩等级为E')
     pass
 elif score<70:
     print('该成绩等级为D')
     pass
 elif score<80:
     print('该成绩等级为C')
     pass
 elif score<90:
     print('该成绩等级为B')
     pass
 else:
     print('该成绩等级为A')
     pass

比较数字

import random
comp=random.randint(0,100)
peo=int(input('请输入数字(0~100)'))
print('电脑数字为%d'%comp)
if comp>peo:
    print('你输了')
    pass
elif comp==peo:
    print('平了')
    pass
else:
    print('你赢了')
    pass

if-else嵌套使用(多条件限制)

外层的if判断,也可以是if-else

内层的if判断,也可以是if-else

根据实际开发的情况进行选择

if 条件1:
    if 条件2:
        print('满足条件1和条件2')
        pass
    else:
        print('满足条件1,不满足条件2')
        pass
    pass
elif 条件3:
    if 条件4:
        print('满足条件3和条件4')

二、循环语句

1.while(适用于未知的循环次数,用于判断

循环结构

 语法特点

有初始值

通过条件表达式判断循环

必须有变量(循环体内计数变量)的自增或自减,否则会造成死循环

使用条件:循环的次数不确定,依靠循环条件来结束

目的:为了将相似或相同的代码变得更加简洁,重复使用

举例:

#输出1-100
i=1
while i<=100:
    print(i)
    i+=1
    pass
#比数字可循环版
import random
a=1  #a用来充当flag,判断用户是否继续
while a==1:
    comp=random.randint(0,100)
    peo=int(input('请输入数字(0~100)'))
    print('电脑数字为%d' % comp)
    if comp > peo:
        print('你输了')
        pass
    elif comp==peo:
        print('平了')
        pass
    else:
        print('你赢了')
        pass
    stri=input('是否继续?(Yes or N)')
    if stri=='Yes':
        pass
    else:
        a=0
        pass
    pass

while嵌套使用

 举例:

#三角形九九乘法表
i=9
j=1
while i>=1:
    j=1
    while j<=i:
        print('%d*%d=%d'%(j,i,i*j),end=' ')
        j+=1
        pass
    i-=1
    print()
    pass
#等腰三角形
a=int(input('请输入三角形的高:'))
i=a
while i>=0:
    j=i
    while j>0:
        print(end='  ')
        j-=1
        pass
    k=2*(a-i+1)-1
    cou=1
    while cou<=k:
        print('*',end=' ')
        cou+=1
        pass
    i-=1
    print()
    pass

2.for循环:适用于已知的循环次数(可迭代对象的遍历)

在Python中for循环可以遍历任何序列的项目,如一个列表或者一个字符串等。

语法特点:遍历操作,一次的取容器中的每个值。

格式:

 举例:

s1='萨顶顶反而会饥饿'
for i in s1:
    print(i)
    pass

for num in range(1,11,1): #range(起点,终点(不包括),步长)
    print(num,end=' ')
    pass
#for循环九九乘法表
for i in range(1,9):
    for j in range(1,i+1):
        print('%d*%d=%d'%(j,i,j*i),end=" ")
        pass
    print()
    pass

3.break和continue

break 代表中断结束,只要满足条件,直接结束本层循环

continue 结束本次循环,继续进行下次循环(当continue满足条件的饿时候,本次循环剩下的语句将不在执行,后面的循环还继续。)

这两个关键字,只能用在循环中

举例:

4.for-else的使用(while-else同理)

for i in range(1,9):
    print(i)
    if i==5:
        break
        pass
    pass
else:
    print('循环完全遍历,中途没有break才会输出这句话')  #登录系统可以使用
    pass
account='sheldon'
psw='123'
for i in range(1,4):
    print(i,end=' ')
    zh=input('请输入账号:')
    pd=input('请输入密码:')
    if account==zh and psw==pd:
        print('恭喜登录成功!')
        break
        pass
    pass
else:
    print('超过登录次数{},3分钟后重试!'.format(i))

本日练习

一、猜年龄小游戏,有三点需求

1.允许用户最多尝试3次

2.每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序

3.如何猜对了,就直接退出

import random
cou=3
flag=1
while flag==1:
    agec = random.randint(1, 100)
    cou=3
    while cou>=0:
        age=int(input('请输入年龄:'))
        if age==agec:
            print('恭喜您猜对了')
            s=input('是否继续?y or n')
            if s=='y':
                pass
            else:
                flag=0
                pass
            break
            pass
        else:
            print('猜错了%d,请继续:'%agec)
            cou-=1
            pass
        pass
    else:
        print('次数已经用完')
        s2=input('是否继续?y or n')
        if s == 'y':
            pass
        else:
            flag = 0
            break
            pass
        pass

二、小王身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小王计算他的BMI指数,并根据BMI指数:
低于18.5 过轻
18.5-25: 正常
25-28: 过重
28-32: 肥胖
高于32: 严重肥胖
用if-elif判断并打印结果

high=float(input('请输入身高(单位/m):'))
weight=float(input('请输入体重(单位/kg):'))
ans=float(weight/high**2)
print('你的BMI指数为:%f'%ans)
if ans<18.5:
    print('您的体质过轻')
    pass
elif ans<25:
    print('您的体质正常')
    pass
elif ans<28:
    print('您的体质过重')
    pass
elif ans<32:
    print('您的体质肥胖')
    pass
else:
    print('您的体质严重肥胖')
    pass
原文地址:https://www.cnblogs.com/giaogiaogiao/p/14459673.html