QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码

主题

帖子

荣誉

版主

Rank: 20Rank: 20Rank: 20Rank: 20

技术值
查看: 4604|回复: 133

[技术交流] Python:每日一题 1

  [复制链接]
最佳答案
311 
累计签到:372 天
连续签到:45 天
新手·ing 发表于 2017-3-24 21:42:12 4604133 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。

本帖被以下淘专辑推荐:

楼层
跳转到指定楼层
最佳答案
311 
累计签到:372 天
连续签到:45 天
新手·ing  楼主| 发表于 2017-3-24 21:43:40 | 显示全部楼层
  1. for i in range(1,5):
  2.     for j in range(1,5):
  3.         for k in range(1,5):
  4.             if i != k and i != j and j != k:
  5.                 print(i,j,k)
复制代码

这是我的解答,欢迎大家一起交流。
最佳答案
0 
累计签到:3 天
连续签到:1 天
伤心地铁 发表于 2017-3-24 22:08:36 | 显示全部楼层
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(x,y,z)
跟2楼的好巧

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
新手·ing + 1 + 1 支持楼主!

查看全部评分

最佳答案
311 
累计签到:372 天
连续签到:45 天
新手·ing  楼主| 发表于 2017-3-24 22:12:04 | 显示全部楼层
伤心地铁 发表于 2017-3-24 22:08
for x in range(1,5):
    for y in range(1,5):
        for z in range(1,5):

哈哈
谢谢支持
欢迎加入我的淘专辑
http://bbs.fishc.com/forum.php?m ... d=588&fromop=my
最佳答案
142 
累计签到:410 天
连续签到:168 天
ooxx7788 发表于 2017-3-24 22:17:54 | 显示全部楼层
本帖最后由 ooxx7788 于 2017-3-24 22:21 编辑
  1. import itertools
  2. a = range(1, 5)
  3. y = list(itertools.permutations(a, 3))
  4. print(y)
复制代码

投机取巧

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
新手·ing + 1 + 1 支持楼主!

查看全部评分

最佳答案
311 
累计签到:372 天
连续签到:45 天
新手·ing  楼主| 发表于 2017-3-24 22:19:42 | 显示全部楼层

向大佬致敬
谢谢支持
欢迎加入我的淘专辑
http://bbs.fishc.com/forum.php?m ... d=588&fromop=my
有没有兴趣成为维护人,一起?
最佳答案
0 
累计签到:121 天
连续签到:1 天
yuclta 发表于 2017-3-28 21:32:03 | 显示全部楼层
5楼简洁。
最佳答案
311 
累计签到:372 天
连续签到:45 天
新手·ing  楼主| 发表于 2017-3-28 21:32:46 | 显示全部楼层

是啊
万能的itertools模块
最佳答案
149 
累计签到:28 天
连续签到:1 天
gopythoner 发表于 2017-3-31 23:35:53 | 显示全部楼层
跟你们写的一样,从第一个开始做你这个系列,有意思
虽然代码一样,但是权当记录一下吧
  1. def test1():
  2.     for a in range(1,5):
  3.         for b in range(1, 5):
  4.             for c in range(1, 5):
  5.                 if a != b and a != c and b != c:
  6.                     print (a, b, c)
复制代码

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
新手·ing + 1 + 1 支持楼主!

查看全部评分

最佳答案
0 
累计签到:22 天
连续签到:1 天
达达里昂 发表于 2017-4-2 13:53:11 | 显示全部楼层
list = []
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:
                a= 100 *x + 10 * y + z
                list.append(a)
print('答案列表是:',list)
print('列表中的元素总共有:',len(list),'个')

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
新手·ing + 3 + 3 支持楼主!

查看全部评分

最佳答案
0 
累计签到:4 天
连续签到:1 天
qina1020 发表于 2017-4-6 08:46:33 | 显示全部楼层
lists1=[1,2,3,4]
lists2=[x*100+y*10+z for x in lists1 for y in lists1 for z in lists1 if x!=y and y!=z and x!=z]
print(lists2,'个数'+str(len(lists1)))
变态版

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
新手·ing + 3 + 3 不错~

查看全部评分

最佳答案
58 
累计签到:54 天
连续签到:2 天
ButcherRabbit 发表于 2017-4-7 14:09:37 | 显示全部楼层
  1. count = 0
  2. for i in range(1,5):
  3.     for j in range(1,5):
  4.         for k in range(1,5):
  5.             if i == j or j == k or k == i:
  6.                 continue
  7.             else:
  8.                 print('%d%d%d'%(i,j,k))
  9.                 count += 1
  10. print('有%d种组合'%count)
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
新手·ing + 3 + 3 大兄弟~

查看全部评分

最佳答案
0 
累计签到:111 天
连续签到:1 天
小老甲鱼 发表于 2017-4-10 00:41:05 | 显示全部楼层
共24组,分别如下:
1 2 3,1 2 4,1 3 2,1 3 4,1 4 2,1 4 3;
2 1 3,2 1 4,2 3 1,2 3 4,2 4 1,2 4 3;
3 1 2,3 1 4,3 2 1,3 2 4,3 4 1,3 4 2;
4 1 2,4 1 3,4 2 1,4 2 3,4 3 1,4 3 2;
最佳答案
0 
累计签到:3 天
连续签到:1 天
momozi 发表于 2017-4-11 12:55:57 | 显示全部楼层
新手·ing 发表于 2017-3-24 21:43
这是我的解答,欢迎大家一起交流。

最佳答案
1 
累计签到:6 天
连续签到:1 天
余欲渔 发表于 2017-4-11 12:58:11 | 显示全部楼层
  1. import itertools as it
  2. print(len([x for x in it.permutations([1,2,3,4],3)]))
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
新手·ing + 3 + 3 没鱼币了...

查看全部评分

最佳答案
0 
累计签到:3 天
连续签到:1 天
momozi 发表于 2017-4-11 12:58:43 | 显示全部楼层
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if i != k and i != j and j != k:
                print(i,j,k)
这个好,简单易懂,大爱,因为我看懂了。。。
最佳答案
0 
累计签到:87 天
连续签到:1 天
546397641 发表于 2017-4-11 13:24:28 | 显示全部楼层
e=0
for a in range(1,5):
    for b in range(1,5):
        for c in range(1,5):
            if a!=b and a!=c and c!=b:
               
                d=a*100+b*10+c
                e+=1
                print(d," ",e)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
新手·ing + 3 + 3 支持楼主!

查看全部评分

最佳答案
0 
累计签到:87 天
连续签到:1 天
546397641 发表于 2017-4-11 13:26:42 | 显示全部楼层
momozi 发表于 2017-4-11 12:58
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):

会有空格出现吧
最佳答案
0 
累计签到:167 天
连续签到:1 天
zhhmms 发表于 2017-4-12 14:15:46 | 显示全部楼层
貌似:
def test1():
    for a in range(1,5):
        for b in range(1, 5):
            for c in range(1, 5):
                if a != b and a != c and b != c:
                    print (a, b, c)

评分

参与人数 1荣誉 +2 鱼币 +2 收起 理由
新手·ing + 2 + 2

查看全部评分

最佳答案
7 
累计签到:186 天
连续签到:5 天
清风揽月shine 发表于 2017-4-15 15:10:15 | 显示全部楼层
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(x,y,z)
                n+=1
print('In total %d types'%n)
               

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐 上一条 /1 下一条

    移动客户端下载(未启用)
    微信公众号

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备11014136号

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.1 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2018-4-23 04:00

快速回复 返回顶部 返回列表