第三章:条件、循环和其他语句

@Author :萌狼蓝天

@data:2021/4/2

@URL:https://mlltcc1

3.1 print语句的应用

3.2 赋值语句

3.2.1 序列解包

x,y,z = 1,2,3
 print(x,y,z)
1 2 3
x,y=1,2
 x,y=y,x
 print(x,y)
2 1

3.2.2 链式赋值

x=y=z=1

3.2.3 增量赋值

增强赋值语句等价于语句
x+=yx=x=+y
x-=yx=x-y
x*=yx=x*y
x/=yx=x/y

3.3 代码块和缩进

3.4 条件语句

3.4.1 布尔变量

3.4.2 if语句

3.4.3 else字句

3.4.4 elif字句

3.4.5 嵌套条件语句

3.5 循环语句

3.5.1 while循环

3.5.2 for循环

eg:用for循环实现计算1+2+3+4……+10000的和,代码如下

sum=0
 for n in range(1,10001): #range(1,10001)用于生成1到10001(不包括10001)的整数
     sum+=n
 print(sum)

eg:输出所有的水仙花数(水仙花数:指的是一个三位数,其各位数字立方和等于该数本身)

分析:如何从一个3位数中提取各位数字是关键。这里借助%(取模-返回除法的余数)和//(取整除-返回商的整数部分)来完成

for i in range(100, 1000):
     #print(i)
     a = i % 10  # 个位数
     b = i // 10 % 10  # 十位数
     c = i // 100  # 百位数
     if i == a ** 3 + b ** 3 + c ** 3:
         print(i)
153

370

371

407

eg:判断一个数是否为素数

import math
 #由于程序中要用到sqrt()方法返回数字x的平方根,sqrt()是不能直接被访问的,需要导入math模块,通过静态对象调用该方法
 m=int(input("请输入一个数:"))
 n=int(math.sqrt(m))
 prime=1
 for i in range(2,n+1):
     if m%i==0:
         prime=0
 if(prime==1):
     print(m,"是素数")
 else:
     print(m,"不是素数")
请输入一个数:12
12 不是素数

3.5.3 Python 嵌套循环

3.5.4 跳出循环(break和continue)

3.5.5 循环中的else子句语句

eg:输出10-30之间的所有素数

print("10-30之间的素数是:")
 for num in range(10, 31):  # 迭代10到30之间的数字
     re = 0
     for i in range(2, num):  # 根据因子迭代
         if num % i == 0:  # 确定第一个因子
             re += 1
             break  # 跳出循环体
     if re == 0:
         print(num)
 ​
10-30之间的素数是:
11
13
17
19
23
29

3.5.6 综合应用

"""
 输入行数(必须是奇数,例如输入行数“7”),输出类似以下有规律的图形
    *
   ***
  *****
 *******
  *****
   ***
    *
 """
 rows = int(input("输入行数(奇数):"))
 # 判断用户输入的数值是否符合题意
 if rows % 2 == 0:
     print("您输入的数字不是奇数,请重新运行本程序输入")
 else:
     for i in range(0, rows // 2 + 1):
         for j in range(rows - i, 0, -1):
             print(" ", end="")  # 打印空格
         for k in range(0, 2 * i + 1):
             print("*", end="")  # 打印符号
         print("")
     for i in range(rows//2,0,-1):
         for j in range(rows-i+1,0,-1):
             print(" ", end="")  # 打印空格
         for k in range( 2 * i - 1,0,-1):
             print("*", end="")  # 打印符号
         print("")

有兴趣和精力的可以继续练以下题:

1.输入两个正整数,求他们的最大公约数和最小公倍数、

2.求某个数的阶层

3.编程出斐波纳契数列的前20项

4.输出九九乘法表

最后修改:2021 年 04 月 02 日 06 : 24 PM
如果觉得我的文章对你有用,请随意赞赏