鱼C论坛

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

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

  [复制链接]
发表于 2018-3-16 17:55:03 | 显示全部楼层
本帖最后由 headjean2008 于 2018-3-17 15:09 编辑
  1. list1 = [1,5,3,9,7,8]
  2. list2 =[]
  3. a,b,c = [0,0,0]
  4. num = 0

  5. count = range(len(list1))


  6. for a in count:
  7.     for b in count:        
  8.         for c in count:
  9.             while a!=b and a!=c and b!=c:
  10.                 num = list1[a]*100+list1[b]*10+list1[c]
  11.                 list2.append(num)
  12.                 break

  13.    
  14. print(list2)
  15. print('长度为:',len(list2))
复制代码


[153, 159, 157, 158, 135, 139, 137, 138, 195, 193, 197, 198, 175, 173, 179, 178, 185, 183, 189, 187, 513, 519, 517, 518, 531, 539, 537, 538, 591, 593, 597, 598, 571, 573, 579, 578, 581, 583, 589, 587, 315, 319, 317, 318, 351, 359, 357, 358, 391, 395, 397, 398, 371, 375, 379, 378, 381, 385, 389, 387, 915, 913, 917, 918, 951, 953, 957, 958, 931, 935, 937, 938, 971, 975, 973, 978, 981, 985, 983, 987, 715, 713, 719, 718, 751, 753, 759, 758, 731, 735, 739, 738, 791, 795, 793, 798, 781, 785, 783, 789, 815, 813, 819, 817, 851, 853, 859, 857, 831, 835, 839, 837, 891, 895, 893, 897, 871, 875, 873, 879]
长度为: 120
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-21 21:06:02 | 显示全部楼层
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 i != k:
                print(i*100+j*10+k)

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

使用道具 举报

发表于 2018-3-23 15:01:10 | 显示全部楼层
for i1 in range(1,5):
        for i2 in range(1,5):
                for i3 in range(1,5):
                        if (i1+i2+i3)/3 != i1:
                                print i1,i2,i3
               
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2018-4-5 17:20:32 | 显示全部楼层
list0 =[]
for n1 in range(1,5):
        for n2 in range(1,5):
                if n2 == n1:
                        continue
                for n3 in range(1,5):
                        if n3 == n1 or n3 == n2:
                                continue
                        i = n1*100+n2*10+n3
                        list0.append(i)
print(list0)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-5 21:15:23 | 显示全部楼层
# 题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
# 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
list1 = []
for x in range(1,5):
    for y in range(1,5):
        for z in range(1,5):

                x =str(x)
                y = str(y)
                z = str(z)
                if (x != y and x != z and y!= z):
                    str1 = x+y+z
                    str1 = int(str1)
                    list1.append(str1)
print("一共有:",len(list1),"个不相同的数字\n" +'分别是:')
print(list1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-6 22:18:26 | 显示全部楼层
本帖最后由 算幽幽 于 2018-4-6 22:29 编辑
solomonxian 发表于 2017-4-18 20:08
两两不相等,不试下用集合吗?
数字多起来的时候还是集合好用吧


为什么:i,j,k 会重复,不是集合吗:
  1. if({i,j,k}):
  2.                 print(100*i+10*j+k)
复制代码

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

使用道具 举报

发表于 2018-4-6 23:00:59 | 显示全部楼层
  1. '''
  2. 有四个数字:1、2、3、4
  3. 能组成多少个互不相同且无重复数字的三位数?
  4. 各是多少?
  5. '''
  6. counter=0
  7. for i in range(1,5):
  8.     for j in range(1,5):
  9.         if i==j:
  10.             continue
  11.         else:
  12.             for k in range(1,5):
  13.                 if k==i:
  14.                     continue
  15.                 if k==j:
  16.                     continue
  17.                 counter=counter+1
  18.                 print("%d%d%d" %(i,j,k))
  19. print("一共有%d个三位不同的数字。" % counter)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2018-4-15 10:57:43 | 显示全部楼层
for x in range(1,5):
    for y in range(1,5):
        for z in range(1,5):
                if x != y and y != z and x != z:
                    print(x*100+y*10+z)


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

使用道具 举报

发表于 2018-4-18 17:00:56 | 显示全部楼层
list1 = [1,2,3,4]
list_last = []
for num1 in list1:
    list2 = list1[:]
    list2.remove(num1)
    for num2 in list2:
        list3 = list2[:]
        list3.remove(num2)
        for num3 in list3:
            num = num1*100 + num2*10 + num3
            
            list_last.append(num)
print(list_last,'总共有:' ,len(list_last))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-19 10:49:47 | 显示全部楼层
sum = 0
i = 0

for a in range(1,5):
        for b in range(1,5):
                if b != a:
                        for c in range(1,5):
                                if c != a and c!= b:
                                        for d in range(1,5):
                                                if d!=a and d!=b and d!=c:
                                                        sum = a*1000 + b*100 + c*10 + d
                                                        i += 1
                                                        print(sum)
print("1,2,3,4 一共可以组成 %s 个四位数." %(i))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-4 22:26:05 | 显示全部楼层
# 很不好意思,不懂
hundreds = [1,2,3,4]
tens = [1,2,3,4]
units = [1,2,3,4]
i = 0
j = 0
k = 0
z = 0
x = []

while i < 4:
    bai = hundreds[i] * 100
    while j < 4:
        shi = tens[j] * 10
        while k < 4:
            ge = units[k]
            if i != j:
                if i != k:
                    if j != k:
                        value = bai + shi + ge
                        x.append(value)
                        z = z + 1
            k = k + 1
        k = 0
        j = j + 1
    j = 0
    i = i + 1
                                       
print('可能排列:',list(x))
print('个数为:',z)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-8 17:22:08 | 显示全部楼层
n = 0
for i in range(1,5):
    for o in range(1,5):
        for p in range(1,5):
            if i!=o and o!=p and i!=p:
                n+=1
                print(i,o,p)
            else:
                print(i,o,p,"不符合要求")

print("符合要求的组合有:%d个:"%n)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-12 19:51:54 | 显示全部楼层
num=[1,2,3,4]
for g in  num:
    for s in num:
        for b in num:
            if s!=g and s!=b and g!=b:
                dight=b*100+s*10+g
                print(dight)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-14 14:15:08 | 显示全部楼层
list=[1,2,3,4]
for x in list:
    for y in list:
        for z in list:
            if x!=y and x!=z and y!=z:
                print(x,y,z);
请大家看看 这样写满足题意吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-16 13:51:25 From FishC Mobile | 显示全部楼层
楼主是面向纯小白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-17 00:41:52 | 显示全部楼层
L2=[]
for B in range(1,5):
    for S in range(1,5):
        for G in range(1,5):
            if B!=S and S!=G and B!=G:
                L1=[]
                L1.append(B)
                L1.append(S)
                L1.append(G)
                L2.append(L1)
print(L2,len(L2))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 05:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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