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

最新文章

  1. unity 利用ugui 制作技能冷却效果
  2. mysql中正则表达式的使用
  3. MSSQL-实用小工具
  4. CSDN CODE平台,中国版Github简要使用说明!(多图慎入)
  5. GOF设计模式特烦恼
  6. H5案例分享:html5重力感应事件
  7. saltstack/salt的state.sls的使用
  8. Oracle开发之窗口函数 rows between unbounded preceding and current row
  9. 利用libevent的timer实现定时器interval
  10. 要理解javascript中间apply和call
  11. 开源 java CMS - FreeCMS2.3 留言管理
  12. 基于EM的多直线拟合
  13. 1.0、Android Studio管理你的项目
  14. WLST Hangs Up Because of Java VM ClassLoader Deadlock
  15. Day10:html和css
  16. 海量数据处理之BitMap
  17. Linux 命令详解(六)Linux 守护进程的启动方法
  18. git status 显示中文和解决中文乱码
  19. 微信公众号支付-Common
  20. Chapter 8 面向对象设计

热门文章

  1. 编译U-Boot时command not found的解决方法
  2. 剑指offer-面试题40-最下的k个数-快速排序
  3. Qt读写文件
  4. Python学习笔记--协程asyncio
  5. 对Linux内核tty设备的一点理解(转)
  6. centos python虚拟环境安装
  7. JavaSE学习笔记(7)---数组
  8. npm常用模块之chai使用
  9. Swaps and Inversions HDU - 6318 树状数组+离散化
  10. linux--后端项目部署