Python基础——常用条件控制语句

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

  • 执行的流程:
    • if语句在执行时,会先对条件表达式进行求值判断,
    • 如果为True,则执行if后的语句
    • 如果为False,则不执行
  • 语法:if 条件表达式 :
        代码块
  • 代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行
  • 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
  • 代码块就是一种为代码分组的机制
age = 20
if age >= 18 :            #True
    #代码块
    print('成年了,')     #成年了,
    print("长大了!")     #要有担当!

age = 15
if age >= 18 :           #False
    #代码块
    print('成年了,')     #不输出
    print("长大了!")     #不输出

2.input() 函数

  • 该函数用来获取用户的输入
  • input()调用后,程序会立即暂停,等待用户输入
  • 用户输入完内容以后,点击回车程序才会继续向下执行
  • 用户输入完成以后,其所输入的的内容会以返回值的形式返回
#调用input函数获取用户的年龄
age = input('请输入你的年龄:')
print('你的年龄是:',age,'岁')

执行后就会显示光标,需要自己输入,
在这里插入图片描述
输入20后按下回车,程序执行完成。
在这里插入图片描述

3.if-else语句

  • 语法:
      if 条件表达式 :
        代码块
      else :
        代码块
  • 执行流程:
    • if-else语句在执行时,先对if后的条件表达式进行求值判断
    • 如果为True,则执行if后的代码块
    • 如果为False,则执行else后的代码块
#if-else语句
age = 20
if age > 18 :             #True
    print('你是成年人!')  #你是成年人!
else :
    print('你是未成年!')
    
age = 13
if age > 18 :             #False
    print('你是成年人!')  #不输出
else :                    #True
    print('你是未成年!')  #你是未成年!

4.if-elif-else 语句

  • 语法:
      if 条件表达式 :
        代码块
      elif 条件表达式 :
        代码块
      elif 条件表达式 :
        代码块
      …
      else :
        代码块
  • 执行流程:
    • if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
    • 如果表达式的结果为True,则执行当前代码块,然后语句结束
    • 如果表达式的结果为False,则继续向下判断,直到找到True为止
    • 如果所有的表达式都是False,则执行else后的代码块
    • 总结: if-elif-else中只会有一个代码块会执行
#if-elif-else语句
age = int(input('请输入你的年龄:'))    #input返回的是str类型,需要转化为int类型
print('你的年龄是:',str(age),'岁')
if  age < 0 :
    print('输入错误!')
elif age < 7 :
    print('你是婴幼儿!')
elif age < 13 :
    print('你是少儿!')
elif age < 18 :
    print('你是青少年!')
elif age < 46 :
    print('你是青年!')
elif age < 70:
    print('你是中年!')
else :
    print('你是老年!')

5.while语句

  • 循环语句可以使指定的代码块重复指定的次数.循环语句分成两种,while循环 和 for循环
  • 语法:
      while 条件表达式 :
        代码块
      else:
        代码块
    实例:
  • while循环
#while语句
age = 0
while age < 18 :
    print('我现在',str(age),'岁了!')
    age += 1
else :
    print('我终于成年了!')

执行结果:
在这里插入图片描述

  • for循环
#for循环
for age in range(0,5):
    print(age)

执行结果:
在这里插入图片描述

小练习

学完了这些条件控制语句,让我们来小试牛刀试一下吧!

  • 1.求1000以内所有的水仙花数
  • 2.获取用户输入的任意数,判断其是否是质数?
  • 3.控制台输出9 9乘法表
  • 4.给用户9次机会 猜1-10个数字内随机来猜数字。如果随机的数字和用户输入的数字一致则表示正确,如果不一致则表示错误。最终结果要求用户怎么也猜不对。
  • 第1题:
# 求1000以内所有的水仙花数
num = 0
while num < 100 :
    num += 1
else :     #满足三位水仙花数
    while num < 1000 :
        bai = num//100
        shi = (num%100)//10
        ge  = num% 10
        if bai**3 + shi**3 + ge**3 ==num :
            print(str(num),'是水仙花数!')
        num += 1
    else :
        print('查找完毕!')

执行结果:
在这里插入图片描述

  • 第2题:
# 获取用户输入的任意数,判断其是否是质数?
import math
num = int(input('请输入一个正整数:'))
mid = int(math.sqrt(num))           #求其平方根
mul_num = 2                         #质数和合数的因子都有1,所以从2开始循环
Flag = 0                            #质数合数标志位
while mul_num <= mid :
    if  int(num/mul_num) * mul_num ==num:
        Flag = 1
        mul_num = mid + 1           #直接可以跳出循环
    else :
        mul_num += 1
if Flag == 1 or num == 1 :
    print(str(num),'不是质数!')
else :
    print(str(num), '是质数!')

为了测试其效果,我们修改代码判断输入1-50来进行判断:

# 查看1-19哪些是合数,哪些是质数
import math
for num in range(1,20):
    mid = int(math.sqrt(num))           #求其平方根
    mul_num = 2                         #质数和合数的因子都有1,所以从2开始循环
    Flag = 0                            #质数合数标志位
    while mul_num <= mid :
        if  int(num/mul_num) * mul_num ==num:
            Flag = 1
            mul_num = mid + 1           #直接可以跳出循环
        else :
            mul_num += 1
    if Flag == 1 or num == 1 :
        print(str(num),'不是质数!')
    else :
        print(str(num), '是质数!')

执行结果:
在这里插入图片描述

  • 第3题:

控制台输出9 9乘法表

# 控制台输出9 9乘法表
i = 0                                                               #行
space = '         '                                                 #用于占位的空格符
while i < 9:
    j = i
    print(space*i,end="")                                           #乘法项缩进
    i += 1
    while j < 9 :
        j += 1
        if i*j >= 10 :                                              #判断结果位数,用于对齐
            print(str(i)+'x'+str(j)+'='+str(i*j),'  ',end="")       #加end="",确保不换行
        else :
            print(str(i)+'x'+str(j)+'=',str(i*j),'  ',end="")
    else :
        print('\n')                                                 #输入完一行,换行

执行结果:
在这里插入图片描述

  • 第4题:
# 给用户9次机会猜1-10个数字内随机来猜数字。
# 如果随机的数字和用户输入的数字一致则表示正确,
# 如果不一致则表示错误。最终结果要求用户怎么也猜不对
times = 9                                       #猜测次数
num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]      #存放所有结果的列表
while times!=0 :                                #次数未用完就继续猜
    num = int(input('请随机猜一个1-10的数:'))
    if num in num_list:                         #用来检验用户是否故意猜同一数字
        times -= 1                              #次数减一
        num_list.remove(num)                    #移除用户猜的数,也就是他永远猜不对的原因
        print('你猜的数是:' + str(num))
        print('真可惜!你猜错了!')
        print('你还有' + str(times) + '次机会!')
    else :
        print('你已经猜过这个数字了,请换一个')
else:
    print('很遗憾,你的机会用完了!')
    print('正确的答案是:' + str(num_list[0]))   #输出正确结果

由于执行结果过长,这里就不贴图了,有兴趣的可以自己试试。

发布了14 篇原创文章 · 获赞 23 · 访问量 876

猜你喜欢

转载自blog.csdn.net/qq_46147573/article/details/105520848