Python----程序流程控制(一)

1 if分支结构

1.1 if语句

  • 执行的流程:
    • if语句在执行时,会先对条件表达式进行求值判断,
    • 如果为True,则执行if后的语句
    • 如果为False,则不执行
  • 语法:
if 条件表达式 : 
     代码块
  • 代码块代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行
  • 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
  • 代码块就是一种为代码分组的机制

1.2 if-else语句

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

1.3 if-elif-else语句

• 语法:

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

2 input函数

  • 该函数用来获取用户的输入
  • input()调用后,程序会立即暂停,等待用户输入
  • 用户输入完内容以后,点击回车程序才会继续向下执行
  • 用户输入完成以后,其所输入的的内容会以返回值得形式返回
str = input("从键盘输入你想打印的字符:")
print(str)

在这里插入图片描述

3 for 循环

  • 语法
for var in object:
	循环体语句块
else:
	语句块

else部分可以省略;
else部分只在正常结束循环时执行;
如果用break跳出循环,则不执行对应的语句块

  • 执行流程
    • 依次将可迭代对象 object 中的值赋值给变量 var
    • var 每赋值一次,则执行一次循环体语句块
    • 循环执行结束时,如果有 else 部分,则执行对应的语句块

4 while 循环

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

5 习题:最小素数、金字塔、勾股定理

5.1 素数问题

  • 素数:别称 质数;只有1 和 自身 两个因数的自然数

从键盘任意输入一个正整数n,并找出大于n 的最小素数。

  • 方法一
print("从键盘任意输出一个整数,将会得到大于它的最小素数:")
n = int(input("输入一个整数:"))

number = n + 1
while True:
    count = 0
    for i in range(1,number+1):
        if number % i == 0:
            count += 1
    if count == 2:
        print("大于n的最小素数是{}".format(number))
        break
    number += 1
  • 答案验证
    在这里插入图片描述
  • 方法二
print("从键盘任意输出一个整数,将会得到大于它的最小素数:")
n = int(input("输入一个整数:"))
while True:
    n += 1
    f = True
    a = 2
    while a < n/2:  #在n 的左1/2里面若还能找到因数,则不满足
        if n % a == 0:
            f = False
            break
        a += 1
    if f:
        print("大于n的最小素数是{}".format(n))
        break
  • 答案验证
    在这里插入图片描述

5.1 金字塔问题

输出如下图:
在这里插入图片描述

  • 代码:(方法不唯一,进攻参考)
n = 9	#可更改的初始值,读者可用函数 | input()控制
for i in range(n):
    print(" "*(n-i),end='')	#输出空格占位符
    for j in range(n-i,n+1):	#输出左边
        print(chr(73-j+1),end='')
    for q in range(n,n+i):	#输出右边
        print(chr(56+q+1),end='')
    print()	#控制换行
  • 输出结果即为上图

5.3 勾股定理输出

输出50以内的勾股数,按组输出,每行显示6组,数字右对齐,各组勾股数无重复

  • 代码:
count = 0	#用于计数,以便换行
for x in range(1,50):
    for y in range(x,50):
        for z in range(y,50):
            if x**2+y**2 == z**2:
                count += 1
                print("{:>2d},{:>2d},{:>2d}".format(x,y,z),end="\t")	#{:>2d}空字符填充左边,宽度为2
                if count % 6 == 0:
                    print()
  • 输出显示
    在这里插入图片描述

6 作业

参考 作业

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值