鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

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

  [复制链接]
发表于 2018-2-6 11:52:13 | 显示全部楼层
z1446773686 发表于 2018-2-6 11:19
count = 0
grade = []
for x in range(1,5):

count = 0
grade = []
for x in range (1,5):
                for y in range (1,5):
                                for d in range (1,5):
                                                 if ((x != y) and ((y != d)  and (x != d))):
                                                                count += 1
                                                                n = str(x) ; b = str(y) ; a = str(d)
                                                                grade.append(list(zip(n,b,a)))
print('内容如下:')
for each in grade:
                print(each)
print ('排列个数为:%d' % count )
print(grade)
运行内容:
内容如下:
[('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')]
排列个数为: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')]]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-8 13:38:58 | 显示全部楼层
nums = []
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if i != j and i != k and j != k:
                num = i * 100 + j * 10 + k
                nums.append(num)
print(nums)
print(len(nums))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-9 13:33:33 | 显示全部楼层
count = 0

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:

                count +=1

                print(count,i*100+j*10+k,'\n')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-11 12:02:00 | 显示全部楼层
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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-11 15:03:52 | 显示全部楼层
都乱写代码我也来说说,其实很简单嵌套三个for循环,下面我就帮助一些刚学习for的整理一下思路
for i in range(1,4): #这是控制百位1,4循环
    for ii in range(1,4): #控制十位的1,4循环 只有等嵌套里面循环都循环完毕才可开启新一轮
        for iii in range(1,4): #控制个位l1,4循环
            if i != !! and ii != iii and i != !!!: #条件控制 百位不等于十位,十位不等于个位,百位不等于各位
                print (i,ii,iii) #拼接每次循环结果输出
就像我们打字111,112,113,114,121,122,123,124,循环的规律可见而知
加油加油



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-13 09:20:19 | 显示全部楼层
本帖最后由 凌九霄 于 2018-2-13 09:22 编辑
  1. import itertools
  2. for i in list(itertools.permutations(range(1,5),3)):
  3.     print("{0}{1}{2}".format(i[0],i[1],i[2]))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-18 20:59:19 | 显示全部楼层
  1. from itertools import combinations
  2. print(list(combinations(range(1,5),3)))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-19 13:51:54 | 显示全部楼层
a=0
for i in [1,2,3,4]:
    for j in [1,2,3,4]:
        for k in [1,2,3,4]:
            number=100*i+10*j+k
            if i!=j and i!=k and j!=k:
                a+=1
                print(number)
            else:
                continue
               
print(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-19 16:39:17 | 显示全部楼层
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)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-24 19:38:10 | 显示全部楼层
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if i != j and i != k and j !=k:
                print(i,j,k)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-26 17:26:05 | 显示全部楼层
m = 0
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,end = '')
                print(j,end = '')
                print(k)
                m = m+1
print('\n',m)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-26 17:30:59 | 显示全部楼层
  1. m = 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 != k and i != j and j != k:
  6.                 print(i,end = '')
  7.                 print(j,end = '')
  8.                 print(k)
  9.                 m = m+1
  10. print('\n','有%d种组合'%m)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-1 12:56:17 | 显示全部楼层
  1. lis = []
  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 and i != k and j != k:
  6.                 print(i * 100 + j * 10 + k)
  7.                 lis.append(i * 100 + j * 10 + k)
  8. print("共组成数字:")
  9. print(len(lis))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-1 13:46:16 | 显示全部楼层
  1. lis = []
  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 and i != k and j != k:
  6.                 print(i * 100 + j * 10 + k)
  7.                 lis.append(i * 100 + j * 10 + k)
  8. print("共组成数字:")
  9. print(len(lis))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-2 13:22:17 | 显示全部楼层
  1. a=set()
  2. for i in range(1,5):
  3.     for ii in range(1,5):
  4.         for iii in range(1,5):
  5.             a.add(i*100+ii*10+iii)
  6. print(a)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-5 22:08:07 | 显示全部楼层
def number():
    for i in range(1,5):
        for j in range(1,5):
            for k in range(1,5):
                if (i == j) or (j == k) or (i == k):
                    continue
                print(100*i + 10*j + k)

number()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-6 10:38:52 | 显示全部楼层
  1. l = [1,2,3,4]
  2. v = []
  3. for i in l:
  4.     for n in l:
  5.         if i==n:
  6.             continue
  7.         for x in l:
  8.             if x==n or x==i:
  9.                 continue
  10.             v.append(i*100+n*10+x)
  11. print (v)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 18:07:21 | 显示全部楼层
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if i !=j!=k:
                print (i,j,k)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-9 23:18:27 | 显示全部楼层
看完评论长见识了,原来还有itertool模块
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-13 09:42:45 | 显示全部楼层
本帖最后由 tianqi85 于 2018-3-13 09:48 编辑

num=list(range(1,5))
new=[]
for a in num:
    for b in num:
        for c in num:
            new.append(int(str(a)+str(b)+str(c)))
print (new)
print (len(new))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 04:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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