博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python3.0练习100题——001
阅读量:5016 次
发布时间:2019-06-12

本文共 1175 字,大约阅读时间需要 3 分钟。

自学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。最后输出的时候格式化一下就好了~

 

转载于:https://www.cnblogs.com/drifter/p/9059872.html

你可能感兴趣的文章
c#课后总结
查看>>
Angular.js之Router学习笔记
查看>>
PLSQL 的简单命令之二
查看>>
Zynq7000开发系列-1(Vivado HLx 2016.4下载及安装)
查看>>
python--用户登录验证
查看>>
JSTL 核心标签库使用(转)
查看>>
恒丰银行助手提示注册表异常但修复不了的解决方法
查看>>
机器学习基石笔记10——机器可以怎样学习(2)
查看>>
数据库引擎MyiSAM和InnoDB区别
查看>>
iframe和ajax文件上传方法
查看>>
C# 代码笔记_tuple元组
查看>>
iOS Xcode工程目录的 folder 和 group的区别(蓝色和黄色文件夹的区别) .
查看>>
hdu 2227(树状数组+dp)
查看>>
【转】动态hash方法(数据库索引技术)
查看>>
Edit Distance——经典的动态规划问题
查看>>
python学习2——数据类型
查看>>
java Memorymapfile demo
查看>>
数据库优化打怪升级
查看>>
在容器中运行 Jenkins pipeline 任务
查看>>
java并发编程(synchronized同步和Lock显示锁)
查看>>