python的基本流程控制语句
基本语句及顺序结构
语句:python程序构造块,用于定义函数、定义类、创建对象、变量赋值、调用函数、控制分支、创建循环等。
python语句分为:
简单语句: 表达式语句,赋值语句,assert语句,pass语句,return 语句,break语句,continue语句,import语句等。
复合语句:if语句,while语句,for语句,try语句,函数定义,类定义等。
计算机在解决某个具体问题的时候,主要有3中情形:
- 顺序执行所有的语句 --> 对应程序设计结构中的 顺序结构
- 选择执行部分语句 --> 对应程序设计结构中的 选择结构
- 循环执行部分语句 --> 对应程序设计结构中的 循环结构
基本语句
1.赋值语句: a = 1
2.复合型赋值语句:
2.1 序列赋值: x,y = 10,20
2.2 多目标赋值: x = y = z = 100
【[通常只用于,赋予数值或者字符串这种不可变类型]】
2.3 复合赋值
+= -= *= ......
循环语句
# 使用for循环 打印九九乘法表
for i in range(1,10):
for j in range(1,i+1):
d = i*j
print('%d * %d = %-2d'%(j,i,d),end=' ')
print()
#使用while实现九九乘法表
i=1
while i<10:
j=1
while j<=i:
print(f'{j}*{i}={i*j}',end='\t')
j+=1
print()
i+=1
#下面比较两种方式的时间效率
def mysum(temp):
i=0
s=0
while i<temp:
i+=1 #注意,使用i+=1复合赋值语句比用i=i+1语句效率高
s+=i #注意,不能用i++,python没有++之类的语句
return s
#使用自己的循环语句累加,为了计时,把自己的累加定义为函数
%time mysum(10000)
#调用系统自己的函数计算
%time sum([i for i in range(1,10001)])
#结果:
#Wall time: 2 ms
#Wall time: 998 µs
#打印斐波那契数列 1 1 2 3 5 8 13....打印30项,每行打印5个
f0=f1=1
print(f0,end='\t')
print(f1,end='\t')
for i in range(2,30):
f2=f0+f1
if i%5==0:print('')
print(f2,end='\t')
# f0=f1
# f1=f2
f0,f1=f1,f2
else:
print('\n\n斐波那契数列打印完毕')
# 结果
1 1 2 3 5
8 13 21 34 55
89 144 233 377 610
987 1597 2584 4181 6765
10946 17711 28657 46368 75025
121393 196418 317811 514229 832040
斐波那契数列打印完毕
#判断水仙花数100-999之间的。水仙花是指每个数字的三次方
和等于改三位数本身
import math
for i in range(100,1000):
s=str(i)
sum=0
for j in s:
sum+=math.pow((int(j)),3)
if sum==i:print(i,end='\t')
#判断水仙花数100-999之间的。水仙花是指每个数字的三次
方和等于改三位数本身
import math
for i in range(100,1000):
a=math.pow(i//100,3)
b=math.pow((i%100)//10,3)
c=math.pow(i%10,3)
sum=a+b+c
if sum==i:print(i,end='\t')
### 著名的一个例子:
#1-100之间的数,如果被3整除打印'dizz',
#如果被5 整除打印'fuzz',
#同时被3和整除,打印dizzfuzz,
#其他的数打印这个数本身
#每5个一行,每行元素左对齐
for i in range(1,101):
print(('\n' if (i-1)%5==0 else '')
+
('dizz'[i%3*len('dizz')::]+'fuzz'[i%5*len('fuzz')::]
or
str(i)),end='\t\t')
# 部分结果示例
1 2 dizz 4 fuzz
dizz 7 8 dizz fuzz
11 dizz 13 14 dizzfuzz
16 17 dizz 19 fuzz
dizz 22 23 dizz fuzz
26 dizz 28 29 dizzfuzz
31 32 dizz 34 fuzz
dizz 37 38 dizz fuzz
导入数学包,使用
import math as mt
dir(mt)
# dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;
#带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。
#如果参数不包含__dir__(),该方法将最大限度地收集参数信息。
print(mt.__dict__)
# 类的静态函数、类函数、普通函数、全局变量以及一些内置
# 的属性都是放在类__dict__里
for key,value in mt.__dict__.items():
print(key,value)
# Python 字典(Dictionary) items()
函数以列表返回可遍历的(键, 值) 元组数组。