python3.0练习100题——001
Posted Drifter_y
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3.0练习100题——001相关的知识,希望对你有一定的参考价值。
自学python3中,现在开始每天在python2.71 100例中做一道题,用python3实现,并写下一些思考~加油(? ??灬??)?
题目网站(http://www.runoob.com/python/python-100-examples.html)
001题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
我的答案:
def fun(): n=0 for x in range(1,5): for y in range(1,5): for z in range(1,5): if (x!=y) and (x!=z) and (y!=z): print("%d%d%d"%(x,y,z)) n=n+1 print("tatal:%d"%n)
fun()
思考:
1.用三个循环嵌套可以遍历所有可能的数值,再用if条件筛选出来。但是在数据量大的时候遍历,可能会延长时间。所以可以改进一下代码:
def fun(): n=0 for x in range(1,5): for y in range(1,5) : if y!=x: #增加if条件语句,让循环要产生的数字减少,更省运行时间 for z in range(1,5): if (x!=z) and (y!=z): print("%d%d%d"%(x,y,z)) n=n+1 print("tatal%d"%n) fun()
2.用permutations的方法
from itertools import permutations for i in permutations([1,2,3,4],3): print("%d%d%d" %(i[0],i[1],i[2]))
itertools.permutations(iterable,r)
创建了一个迭代器,返回iterable中所有长度为r的项目序列,如果省略了r,那么序列的长度与iterable中的项目数量相同: 返回p中任意取r个元素做排列的元组的迭代器。
等于说是从列表[1,2,3,4]任意取三个元素,各种排列后,返回含有三个元素的tuple。最后输出的时候格式化一下就好了~
以上是关于python3.0练习100题——001的主要内容,如果未能解决你的问题,请参考以下文章
Python数据分析numpy入门-------numpy100题练习
Python数据分析numpy入门-------numpy100题练习
Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段