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

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

代码块

• 代码块中保存着一组代码,可以使得一段python代码作为一个单元、一个整体执行。
• 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
• 代码块就是一种为代码分组的机制

input() 函数

• 该函数用来获取用户的输入
• input()调用后,程序会立即暂停,等待用户输入
• 用户输入完内容以后,点击回车程序才会继续向下执行
• 用户输入完成以后,其所输入的的内容会以字符串形式返回

为什么input输入的数据不能int类型做比较运算符的计算?

input函数输入的数据都是属于str类型,str类型的数据是不能和int类型的数据进行比较的,需要使用int()函数转化str数据才能进行比较

if-else语句(只有两种情况)

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

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

if-elif-else 语句(多种情况)
value = input('请输入你的工资:')
if value >= 30000:
    print('有钱任性')
elif value >= 20000:
    print('有钱真好')
elif value >= 10000:
    print('哥也月薪上万了')
elif value >= 5000:
    print('工资还说的过去')
elif value >= 2000:
    print('能养活自己了')
else:
print('穷到吃土了')

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

else :

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

2、循环控制

• 循环语句可以使指定的代码块重复指定的次数.循环语句分成两种,while循环 和 for循环

while语句

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

break和continue

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

for语句

• 通过for循环来遍历序列中的元素
语法
for 变量 in 序列(遍历的规则):
代码块

• 注意: for循环的代码块会执行多次,序列中有几个元素就会执行几次。每执行一次就会将序列中的一个元素赋值给变量,所以我们可以通过变量来获取列表中的元素
range(start, stop[, step])

参数说明
• ·start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
• stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
• step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

循环嵌套

• Python 语言允许在一个循环体里面嵌入另一个循环。

while 表达式:
   while 表达式:
      代码块
   代码块
   
for 变量 in 循环规则:
   for 变量 in 循环规则:
       代码块
   代码块
小练习
  1. 求1000以内所有的水仙花数(水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153))
# while语句实现
list1=[]
i=100
while 999>=i>=100:
    str1=str(i)
    if int(str1[0])**3+int(str1[1])**3+int(str1[2])**3 == i :
        list1.append(i)
    i+=1
        
print('1000以内的水仙花数有{}'.format(list1))


# for 语句实现
list1=[]

for i in range(100,1000):
    str1=str(i)
    if int(str1[0])**3+int(str1[1])**3+int(str1[2])**3 == i :
        list1.append(i)

print('1000以内的水仙花数有{}'.format(list1))
  1. 获取用户输入的任意数,判断其是否是质数?(质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。)
# for语句
num = int(input('请输入一个数字:'))
if num > 1:
    for i in range(2,num-1):
        if num % i == 0:
            print('{}不是质数'.format(num))
            break
            
        else:
            continue
    else:
        print('{}是质数'.format(num))

# while 语句
num = int(input('请输入一个数字:'))
if  num > 1:
    i=2
    while i < num-1:
        if num % i == 0:
            print('{}不是质数'.format(num))
            break
        else:
            i+=1
            continue
    else:
        print('{}是质数'.format(num))
  1. 猜拳游戏:
    • 出拳 玩家:手动输入 电脑:随机输入
    • 判断输赢: 玩家获胜 电脑获胜 平局
import random

list1=['石头','剪刀','布']
player=input('请输入你的选择:')
computer=random.choice(list1)
if player == computer:
    print('平局')
elif  player == '石头' and computer == '剪刀' or player == '剪刀' and computer == '布'  or player == '布' and computer == '石头':
    print('玩家获胜')
else:
   print('电脑获胜')