python基础实例1:排列数问题

本文通过四种不同的编程方法探讨了如何利用数字1、2、3、4生成所有可能的不重复三位数组合,并统计了组合数量。涉及循环结构、列表操作、集合应用及排列函数等编程技巧。

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


1、用普通for循环实现

#coding=utf-8
n=0
print '1,2,3,4能组成互不相同且无重复数字的三位数如下:'
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if i!=j and j!=k and k!=i:
                n+=1
                print i*100+j*10+k
print '个数为:%d'%n
2、用list实现

#coding=utf-8
num=[1,2,3,4]
list=[]
for i in num:
    for j in num:
        for k in num:
            if i!=j and j!=k and k!=i:
                list.append(i*100+j*10+k)
print '1,2,3,4能组成互不相同且无重复数字的三位数:%s'%list
print '三位数个数为:%d'%len(list)
3、list简化版

#coding=utf-8
num=[1, 2, 3, 4]
list=[i * 100 + j * 10 + k for i in num for j in num for k in num if (j != i and j != k and k != i)]
print '1,2,3,4能组成互不相同且无重复数字的三位数:%s'%list
print '三位数个数为:%d'%len(list)
4、用set去重实现

#coding=utf-8
num=['1','2','3','4']
list=[]
for i in num:
    for j in num:
        for k in num:
            if len(set(i+j+k))==3:
                list=list+[int(i+j+k)]
print '1,2,3,4能组成互不相同且无重复数字的三位数:%s'%list
print '三位数个数为:%d'%len(list)
5、用自带排列函数实现

#coding=utf-8
from itertools import permutations
n=0
print "三位数如下:"
for i in permutations('1234',3):
    print(''.join(i))
    n+=1
print("个数为:%s"%n)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值