条件判断

一、条件判断

1. if语句
1.1执行的流程:
  • if语句在执行时,会先对条件表达式进行求值判断
  • 如果为True,则执行if后的语句
  • 如果为False,则不执行
1.2语法
  • if 关键字;
  • 条件(即求值为true或false的表达式);
  • 冒号;
  • 代码块。
1.3代码块
  • 代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行
  • 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
  • 代码块就是一种为代码分组的机制
2. if-else语句
2.1语法:
  • if 条件表达式 :
    • 代码块
  • else :
    • 代码块
2.2执行流程:
  • if-else语句在执行时,先对if后的条件表达式进行求值判断
  • 如果为True,则执行if后的代码块
  • 如果为False,则执行else后的代码块
3.if-elif-else 语句
3.1 语法:
  • if 条件表达式 :
    • 代码块
  • elif 条件表达式 :
    • 代码块
  • elif 条件表达式 :
    • 代码块
  • else :
    • 代码块
3.2执行流程:
  • if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断;
  • 如果表达式的结果为True,则执行当前代码块,剩下的条件语句自动跳过
  • 如果表达式的结果为False,则继续向下判断,直到找到True为止
  • 如果所有的表达式都是False,则执行else后的代码块
  • 总结: if-elif-else中只会有一个代码块会执行

二、作业

1.求1000以内所有的水仙花数。(水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身,例如:13 + 53+ 33 = 153)
1.1 做题思路:
  • 生成100-999之间的所有整数;
  • 求出整数的百位数、十位数、个位数
    • 百位:通过除以100取整
    • 十位:除以10取整,再除以10取余
    • 个位:除以10取余
  • 判断是否符合水仙花数规则
1.2代码
a=100
print('1000以内的水仙花数有:')
while a<1000:
    b=a//100  #百位
    s=(a//10)%10  #十位
    g=a%10  #个位
    if a==b**3+s**3+g**3 :
        print(a)
    a+=1
print('over!')
  • 运行结果
1000以内的水仙花数有:
153
370
371
407
over!
2.获取用户输入的任意数,判断其是否是质数.
2.1 做题思路
  • 利用input()函数获取用户输入;
  • 判断用户输入的数是否符合规则,即一个不为0的整数;(isdecimal()函数可以判断字符串是否只由数字构成,且非空)
  • 用户输入0或1,直接输出不是质数
  • 将类型转换成int;
  • 判断是否是质数,即除数只有1和它本身;
2.2代码
while True:
    a=input('请输入一个大于0的整数,按q退出程序')
    if a=='q' or a=='Q':
        break
    elif not a.isdecimal():
        print('你输入的不是整数')
    elif int(a)==0 or int(a)==1:
        print(a,'不是质数')
    else:
        a=int(a)
        i=2
        while i<a:
            if a%i==0:
                print(a,'不是质数')
                break
            i+=1
        else:
            print(a,'是质数')
print('谢谢使用')
  • 运行结果
请输入一个大于0的整数,按q退出程序12
12 不是质数
请输入一个大于0的整数,按q退出程序3
3 是质数
请输入一个大于0的整数,按q退出程序abs
你输入的不是整数
请输入一个大于0的整数,按q退出程序1.23
你输入的不是整数
请输入一个大于0的整数,按q退出程序0
0 不是质数
请输入一个大于0的整数,按q退出程序1
1 不是质数
请输入一个大于0的整数,按q退出程序103
103 是质数
请输入一个大于0的整数,按q退出程序q
谢谢使用
3.猜拳游戏:

• 出拳 玩家:手动输入 电脑:随机输入
• 判断输赢: 玩家获胜 电脑获胜 平局

3.1 做题思路
  • 获取用户输入,可以设0代表剪刀,1代表石头,2代表布
  • 用random.randint()函数随机生成0,1,2中的一个
  • 判断结果
  • 显示结果
3.2代码
import random
while True:
    a=input('请输入,剪刀,石头or布:(按q结束游戏)\n')
    if a=='q' or a=='Q':
        break
    if a=='剪刀'or a=='石头' or a=='布':
        b=random.randint(0,2)  #random.randint()随机生成1-2之间的整数
        if b==0:
            print('电脑出的是剪刀')
        elif b==1:
            print('电脑出的是石头')
        else :
            print('电脑出的是布')
        if (a=='剪刀' and b==0) or (a=='石头' and b==1) or (a=='布' and b==2):
            print('平局')
        elif (a=='剪刀' and b==1) or (a=='石头' and b==2) or (a=='布' and b==0):
            print('你输了!')
        else:
            print('你赢了!')
    else:
        print('输入有误,请重新输入',end='.')
print('欢迎下次再玩!')
  • 运行结果
请输入,剪刀,石头or布:(按q结束游戏)
石头
电脑出的是剪刀
你赢了!
请输入,剪刀,石头or布:(按q结束游戏)
布
电脑出的是石头
你赢了!
请输入,剪刀,石头or布:(按q结束游戏)
剪刀
电脑出的是石头
你输了!
请输入,剪刀,石头or布:(按q结束游戏)
q
欢迎下次再玩!

你可能感兴趣的:(0基础学python,python)