Python语言基础2:流程控制语句

Python语言基础2:流程控制语句 学习笔记

Python代码在执行时是按照自上向下顺序执行的。
通过流程控制语句,可以改变程序的执行顺序,也可以让指定的程序反复执行多次
流程控制语句分成两大类:条件判断语句,循环语句

条件判断语句(if语句)

练习1:
    编写一个程序,获取一个用户输入的整数。然后通过程序显示这个数是奇数还是偶数。
# 判断奇数和偶数
num = int(input('请输入一个整数'))
print('你输入的数是:',num)
if num % 2 == 0 :
    print('你输入的是偶数')
else :
    print('你输入的是奇数')
练习2:
    编写一个程序,检查任意一个年份是否是闰年。
    如果一个年份可以被4整除不能被100整除,或者可以被400整除,这个年份就是闰年
# 判断年份是否是闰年
year = int(input('输入年份:'))
print('输入年份是:',year)
if year % 4 ==0 and year % != 0 or year % 400 == 0:
    print('是闰年')
else :
    print('不是闰年')
练习3:
    我家的狗5岁了,5岁的狗相当于多大年龄的人呢?
    其实非常简单,狗的前两年每一年相当于人类的10.5岁,然后每增加一年就增加四岁。
    那么5岁的狗相等于人类的年龄就应该是10.5+10.5+4+4+4 = 33岁

    编写一个程序,获取用户输入的狗的年龄,然后通过程序显示其相当于人类的年龄。
    如果用户输入负数,请显示一个提示信息
# 计算狗的年龄
dog_year = float(input('输入狗的年龄:'))
print('你输入狗的年龄是:',dog_year)
if dog_year < 1:
    print('你输入的年龄不符合')
elif dog_year <= 2 :
#    dog_year = dog_year * 10.5
    dog_year *=10.5
    print('狗的年龄是:',dog_year ,'岁')
else:
    dog_year = 21 + (dog_year-2)*4
    print('狗的年龄是:',dog_year ,'岁')

# 优化代码
dog_year = float(input('输入狗的年龄:'))
like_person_year = 0
if dog_year >0 :
    if dog_year<=2 :
        like_person_year = dog_year*10.5
        print('狗的年龄是:',like_person_year)
    else:
        like_person_year = 2*10.5
        like_person_year +=(dog_year-2)*4
        print('狗的年龄是:',like_person_year)
else:
    print('输入不符合')
练习4:
    从键盘输入小明的期末成绩:
        当成绩为100时,'奖励一辆BMW'
        当成绩为[80-99]时,'奖励一台iphone'
        当成绩为[60-79]时,'奖励一本参考书'
        其他时,什么奖励也没有
# 输入期末成绩
score = int(input('输入期末成绩:'))
if score < 0 or score >100 :
    print('输入成绩不符合规定')
elif score == 100 :
    print('奖励一辆BMW')
elif  score >=80 :
    print('奖励一部Honor')
elif score >= 60 :
    print('奖励一本考试题')
else:
    print('革命尚未成功,仍需继续努力')

# 优化:
score = int(input('输入期末成绩'))
if 0<=score<100 :
    if score == 100 :
        print('奖励一辆宝马')
    elif score >= 80 :
        print('奖励一部手机')
    elif score >=60 :
        print('奖励一本试题')
    else :
        print('继续努力')
else:
    print('输入不符合')

练习5:
    大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件:
        高:180cm以上; 富:1000万以上; 帅:500以上;
        如果这三个条件同时满足,则:'我一定要嫁给他'
        如果三个条件有为真的情况,则:'嫁吧,比上不足,比下有余。'
        如果三个条件都不满足,则:'不嫁!'
        (仅供练习,实际价值观不提倡)
# 相亲题
print('高:180以上,富:1000万以上,帅:500以上')
height = int(input('输入身高:'))
wealth = int(input('输入财富:'))
loa = int(input('输入颜值:'))
print('高:%s ,富:%s,帅:%s ' % (height,wealth,loa))
if height>=180 and height>=1000 and loa>=500 :
    print('一定嫁')
elif height>=180 or height>=1000 or loa>=500 :
    print('嫁吧,比上不足比下有余')
else :
    print('宁愿做单身狗')

循环语句

# 循环三要素
# 初始化表达式,通过初始化表达式初始化一个变量
i= 0
# 条件表达式,条件表达式用来设置循环执行的条件
while i <  10:
    print (i)
# 更新表达式,修改你初始化变量的值
    i +=1
else :
    print('else中的代码块')
练习1:
    求100以内所有的奇数之和
# 求100以内所有奇数之和
i = 0
result = 0
while i < 100 :
    if i%2 !=0:
        result += i
    i +=1
print('100以内奇数之和:', result)
练习2:
    求100以内所有7的倍数之和,以及个数
# 求100以内所有7的倍数之和,以及个数
i=7
count =0
result=0
while i < 100 :
    result += i
    count +=1
    i +=7
print(result,count)
练习3:
    水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1**3 + 5**3 + 3**3 = 153)。
    求1000以内所有的水仙花数
# 求1000以内的水仙花数。
i=100
while i < 1000 :
    a = i//100
    b = i//10%10
    c = i%10
    if a**3+b**3+c**3 == i:
        print(a,b,c,i)
    i+=1  #放在打印之后
练习4:    
    获取用户输入的任意数,判断其是否是质数。质数是只能被1和它自身整除的数,1不是质数也不是合数。
# 获取到所有可能整除num的整数
num = int(input('输入一个任意大于1的整数'))
i = 2
# 创建一个变量,用来记录num是否是质数,默认是质数
flag = True
while i < num:
    # 判断num能否被i整除
    # 如果num能被i整除,则证明num不是质数,则需要将flag修改为false
    if num % i ==0:
        # 一旦进入判断,则证明num不是质数,则需要将flag修改为False
        flag = False
    i += 1

if flag :
    print(num,'是质数')
else:
    print(num,'不是质数')

循环嵌套

创建一个循环来控制图形的高度
外循环控制高度,内循环控制宽度。
# 外循环执行一次,内循环执行一圈。
# 打印矩形
i = 0
while i < 5:
    j = 0
    while j < 5:
        print('* ',end='')
        j +=1
    print()
    i += 1

# 打印三角形
i = 0
while i < 5:
    j = 0
    while j < i+1:
        print('* ' ,end='')
        j +=1
    print()
    i += 1

练习1:
    打印99乘法表
    1*1=1
    1*2=2 2*2=4
    1*3=3 2*3=6 3*3=9
    ...                 9*9=81
# 打印99乘法表
i = 1
while i < 10:
    j = 1
    while j < i+1 :
        print(j,'*',i,'=',i*j ,end='')# end='':print默认是打印一行,结尾加换行。end=' '意思是末尾不换行,加空格。
        j += 1
    print( ) #换行
    i += 1

练习2:
    求100以内所有的质数
# 求100以内所有质数
# 创建一个循环体,求1-100以内所有数
i = 2
while i <= 100:

    #创建一个变量,记录i的状态,默认i是质数
    flag = True

    # 判断i是否是质数
    # 获取所有可能成为i的因数
    j = 2
    while j < i:
        # 判断i能否被j整除
        if i % j == 0:
            # i能被j整除,证明i不是质数,修改flag为False
            flag = False
        j += 1
    # 验证结果并输出
    if flag :
        print(i)
    i += 1

优化性能

# 引入一个time模块,计算程序执行时间
from time import*
begin = time()
i = 2
while i <= 10000:
    flag = True
    j = 2
    while j <= i**0.5: #第二次优化,优化前是 j < i
        if i % j == 0:
            flag = False
            # 一旦进入判断,证明i不是质数,此时,内层循环没有继续执行的必要
            # 使用break来退出内层循环,以提升计算机性能
            break #第一次优化 ,优化前:无break
        j += 1
    if flag :
        pass
    i += 1

end = time()
print(end - begin)  #计算程序执行时间

你可能感兴趣的:(Python,11)