《python程序设计基础案例教程》复习备考篇(二)

本文介绍了Python的基础流程控制语句,包括简单语句和复合语句,并通过实例展示了赋值、循环(for和while)的应用。还对比了不同循环实现的效率,并探讨了斐波那契数列和水仙花数的计算。此外,文章还涉及到了Python的模块导入和函数使用。
摘要由CSDN通过智能技术生成

python的基本流程控制语句


基本语句及顺序结构

语句:python程序构造块,用于定义函数、定义类、创建对象、变量赋值、调用函数、控制分支、创建循环等。

python语句分为:

简单语句: 表达式语句,赋值语句,assert语句,pass语句,return 语句,break语句,continue语句,import语句等。

复合语句:if语句,while语句,for语句,try语句,函数定义,类定义等。

计算机在解决某个具体问题的时候,主要有3中情形:

  1. 顺序执行所有的语句 --> 对应程序设计结构中的 顺序结构
  2. 选择执行部分语句 --> 对应程序设计结构中的 选择结构
  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()
函数以列表返回可遍历的(键, 值) 元组数组。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值