if条件判断和while循环

1、条件判断语句(if语句)

  • 执行的流程:
    ---- if语句在执⾏时,会先对条件表达式进⾏求值判断,
    ---- 如果为True,则执⾏if后的语句
    ---- 如果为False,则不执⾏
  • 语法:if 条件表达式 :
         代码块

示例如下:

i = int(input("请输入数字:"))
if i == 1:
    print('1')
if i == 2:
    print('2')

结果如下:
在这里插入图片描述

  • 代码块代码块中保存着⼀组代码,同⼀个代码块中的代码,要么都执⾏要么都不执⾏
  • 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
  • 代码块就是⼀种为代码分组的机制

2、input函数

  • 该函数⽤来获取⽤户的输⼊
  • input()调⽤后,程序会⽴即暂停,等待⽤户输⼊
  • ⽤户输⼊完内容以后,点击回⻋程序才会继续向下执⾏
  • ⽤户输⼊完成以后,其所输⼊的的内容会以返回值得形式返回

3、if-else语句

  • 语法
    if 条件表达式:
      代码块
    else:
      代码块

示例如下:

i = 10
if i > 20:
    print('大于20')
else:
    print("小于20")

结果如下:
在这里插入图片描述

  • 执行流程
    ----if-else语句在执⾏时,先对if后的条件表达式进⾏求值判断
    ----如果为True,则执⾏if后的代码块
    ----如果为False,则执⾏else后的代码块)

4、if-elif-else 语句

  • 语法
    if 条件表达式:
      代码块
    elif 条件表达式:
      代码块
    elif 条件表达式:
      代码块
    … … … …
    else:
      代码块

示例如下:

i = 54
if i < 20:
    print('大于20')
elif 40 > i > 20:
    print("大于20小于40")
elif 60 > i > 50:
    print("大于50小于60")
else:
    print("啥都不是!")

结果如下:
在这里插入图片描述

  • 执行流程
    ----if-elif-else语句在执⾏时,会⾃上向下依次对条件表达式进⾏求值判断
    ----如果表达式的结果为True,则执⾏当前代码块,然后语句结束
    ----如果表达式的结果为False,则继续向下判断,直到找到True为⽌
    ----如果所有的表达式都是False,则执⾏else后的代码块
  • 总结:if-elif-else中只会有⼀个代码块会执⾏

5、while语句

  • 循环语句可以使指定的代码块重复指定的次数.循环语句分成两种,while循环和 for循环
  • 语法:
    while 条件表达式 :
      代码块
    else:
      代码块

示例如下:

i = 0
while i < 5:  #只要满足条件就一直循环
    print("*")
    i += 1
else:
    print("语句执行结束!")

结果如下:
在这里插入图片描述

6、break 和 continue

  • break 可以⽤来⽴即退出循环语句,包括else语句
  • continue ⽤来跳过当次循环

break示例:

i = 0
while i < 5:
    print("{}".format(i))
    if i == 2:
        break
    i += 1
else:
    print("语句执行结束!")

结果如下:
在这里插入图片描述
continue示例:

i = 0
while i < 5:
    i += 1
    if i == 2:
        continue
    print("{}".format(i))
else:
    print("语句执行结束!")

结果如下:
在这里插入图片描述

7、while嵌套循环

while 表达式:
  while 表达式:
    代码块
  代码块

示例如下:

# while循环嵌套:九九乘法表
i = 1
while i < 10:
    j = 1
    while j < i+1:
        print('{}*{}={}'.format(j, i, j*i), end='\t')
        j += 1
    print()
    i += 1

结果如下:
在这里插入图片描述

课后作业:

  • 作业一:求1000以内所有的⽔仙花数
list1 = []
for i in range(100, 1000):
    sum1 = 0
    for j in str(i):
        sum1 += int(j)**3
    if i == sum1:
        list1.append(i)
print(list1)

结果如下:
在这里插入图片描述

  • 作业二:获取⽤户输⼊的任意数,判断其是否是质数?
# 用户输入数字
num = int(input("请输入一个数字: "))

# 质数大于 1
if num > 1:
    # 查看因子
    for i in range(2, num):
        if (num % i) == 0:
            print(num, "不是质数")
            break
    else:
        print(num, "是质数")

# 如果输入的数字小于或等于 1,不是质数
else:
    print(num, "不是质数")

结果如下:
在这里插入图片描述

  • 作业三:猜拳游戏:
    —出拳 玩家:⼿动输⼊ 电脑:随机输⼊
    —判断输赢: 玩家获胜 电脑获胜 平局
import random  # 生成随机数、随机字符串

Wj = input('玩家出拳:')
if Wj == '石头' or Wj == '剪刀' or Wj == '布':
    Dn = random.choice(['剪刀', '石头', '布'])
    print('电脑出拳:{}'.format(Dn))
    if Wj == '石头' and Dn == '石头':
        print('平局')
    elif Wj == '石头' and Dn == '剪刀':
        print('玩家获胜')
    elif Wj == '石头' and Dn == '布':
        print('电脑获胜')
    elif Wj == '剪刀' and Dn == '石头':
        print('电脑获胜')
    elif Wj == '剪刀' and Dn == '剪刀':
        print('平局')
    elif Wj == '剪刀' and Dn == '布':
        print('玩家获胜')
    elif Wj == '石头' and Dn == '石头':
        print('平局')
    elif Wj == '石头' and Dn == '剪刀':
        print('玩家获胜')
    elif Wj == '石头' and Dn == '布':
        print('电脑获胜')
else:
    print("请重新输入,只能输入石头、剪刀、布!")

结果如下:
在这里插入图片描述

扩展:python生成随机数、随机字符串

python生成随机数、随机字符串

import random

  • 随机整数: print(random.randint(1, 50))

  • 随机选取0到100间的偶数: print(random.randrange(0, 101, 2))

  • 随机浮点数: print(random.random()) print(random.uniform(1, 10))

  • 随机字符: print(random.choice(‘abcdefghijklmnopqrstuvwxyz!@#$%^&*()’))

  • 多个字符中生成指定数量的随机字符: print(random.sample(‘zyxwvutsrqponmlkjihgfedcba’, 5))

  • 从a-zA-Z0-9生成指定数量的随机字符: ran_str = ‘’.join(random.sample(string.ascii_letters + string.digits, 8))
    print(ran_str)

  • 多个字符中选取指定数量的字符组成新字符串: print(’’.join(random.sample(
    [‘z’, ‘y’, ‘x’, ‘w’, ‘v’, ‘u’, ‘t’, ‘s’, ‘r’, ‘q’, ‘p’, ‘o’, ‘n’, ‘m’, ‘l’, ‘k’, ‘j’, ‘i’, ‘h’, ‘g’, ‘f’, ‘e’, ‘d’,
    ‘c’, ‘b’, ‘a’], 5)))

  • 随机选取字符串: print(random.choice([‘剪刀’, ‘石头’, ‘布’]))

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值