您现在的位置是:首页 > 文章详情

Python程序结构2

日期:2018-06-28点击:372

2018年6月28日笔记

上午上课前分享

高等数学求解及作图软件:mathmatica

5.循环嵌套

循环嵌套1.png-38.7kB
循环嵌套1.png-38.7kB

循环嵌套2.png-50.2kB
循环嵌套2.png-50.2kB

循环嵌套3.png-46.8kB
循环嵌套3.png-46.8kB

循环嵌套4.png-55.6kB
循环嵌套4.png-55.6kB

左上九九乘法表

if __name__ == '__main__': for i in range(1,10): for j in range(1,11-i): print("%d*%d=%2d" %(i,j,i*j),end=' ') print() 

上面一段代码的运行结果如下:


左上99乘法表.png-15.1kB
左上99乘法表.png-15.1kB

左下九九乘法表

if __name__ == '__main__': for i in range(1,10): for j in range(1,i+1): print("%d*%d=%d" %(i,j,i*j),end=' ') print() 

上面一段代码的运行结果如下:


左下99乘法表.png-15.1kB
左下99乘法表.png-15.1kB

右上九九乘法表

if __name__ == '__main__': for i in range(1,10): for j in range(1,i): print(' '*7,end='') for j in range(i,10): print("%d*%d=%-2d" %(i,j,i*j),end=' ') print() 

上面一段代码的运行结果如下:


右上99乘法表.png-16.7kB
右上99乘法表.png-16.7kB

右下九九乘法表

if __name__ == '__main__': for i in range(1,10): for j in range(1,10-i): print(' '*7,end='') for j in range(10-i,10): print("%d*%d=%-2d" %(i,j,i*j),end=' ') print() 

上面一段代码的运行结果如下:


右下九九乘法表.png-16.7kB
右下九九乘法表.png-16.7kB

6.推导式

下面两段代码的作用相同,但是推导式对数据处理更加简单、高效。

items = [] for i in range(1,11): items.append(i) 
items = [i for i in range(1,11)] 

用代码验证推导式的高效性

import time if __name__ == '__main__': startTime = time.time() list1 = [] for i in range(1,10000000): list1.append(i) print(time.time()-startTime) startTime = time.time() list2 = [k for k in range(1,10000000)] print(time.time()-startTime) 

上面一段代码的运行结果如下,从下面的结果可以看出速度差距为2、3倍左右,当数据量更大时,可能差距更大。:

2.5785739421844482
0.9168956279754639

多个推导式示例:

if __name__ == '__main__': a = [i**2 for i in range(1,10)] b = [j+1 for j in range(1,10)] c = [n for n in range(1,10) if n % 2 == 0] d = [letter.lower() for letter in 'ABCDEFGHIJK'] print(a,b,c,d,sep='\n') 

上面一段代码的运行结果如下:

[1, 4, 9, 16, 25, 36, 49, 64, 81]
[2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 4, 6, 8]
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']

7.循环控制

示例1:如果某字母在字符串中存在,则直接跳出循环

if __name__ == '__main__': for letter in 'Python': if letter == 'h': break print(letter) 

上面一段代码的运行结果如下:

h

在python中,for...else结构的作用,else后面接的执行语句在for循环正常执行完,即不是通过break跳出的情况下才会执行。代码示例如下:

if __name__ == '__main__': for i in range(10): if i == 5: print("found it! i = %d"%i) break else: print("No found it....") 

上面一段代码的运行结果如下:

found it! i = 5

for循环练习

有四个数字:1、 2 、3、 4,能组成多少个互不相同且无重复数字的三位数?各是多少?

if __name__ == '__main__': result = set() for i in range(1,5): for j in range(1,5): for k in range(1,5): if len(set([i,j,k])) == 3: result.add(i*100+j*10+k) print(result) print(len(result)) 

上面一段代码的运行结果如下:

{132, 134, 142, 143, 412, 413, 421, 423, 431, 432, 312, 314, 321, 324, 213, 214, 341, 342, 231, 234, 241, 243, 123, 124}
24

原文链接:https://yq.aliyun.com/articles/649248
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章