lollipop1211 发表于 2020-2-14 11:36:29

本帖最后由 lollipop1211 于 2020-2-14 11:41 编辑

i=0
print("可以组成的无重复数字分别是:")
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*100+b*10+c,end=' ')
                i=i+1
print("\n")
print("总个数:",end=' ')
print(i)

lollipop1211 发表于 2020-2-14 11:37:33

新手·ing 发表于 2017-3-24 21:43
这是我的解答,欢迎大家一起交流。

我认为这样输出的结果只是三个个位数字的组合而不是一个三位数,虽然看起来一样但含义不同

lollipop1211 发表于 2020-2-14 11:41:35

i=0
print("可以组成的无重复数字分别是:")
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*100+b*10+c,end=' ')
                i=i+1
print("\n")
print("总个数:",end=' ')
print(i)

kkkrdd 发表于 2020-2-15 21:51:31

本帖最后由 kkkrdd 于 2020-2-15 21:53 编辑

alist =
for i in alist:
        for j in alist:
                for k in alist:
                        if i == j or i == k or j == k:
                                continue
                        else:
                                print(i * 100 + j * 10 + k)

123 124 132 134 142 143
213 214 231 234 241 243
312 314 321 324 341 342
412 413 421 423 431 432

bwlinux 发表于 2020-2-16 22:30:07

f = []
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:
                x = 100 * i + 10 * j + k
                f.append(x)
print(f)
print('所有不重复的数字总共是:%d' % len(f))

zhguhe 发表于 2020-2-19 17:42:15

import itertools
a = range(1, 5)
y = list(itertools.permutations(a, 3))
print(y)

xu1sk2 发表于 2020-2-21 22:57:57

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)

君子好逑 发表于 2020-2-24 12:55:05

count=0
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):
                result=100*i+10*j+k
                print('%5d'%result,end='')
                count+=1
            else :
                continue
            if count==10:
                print()
                count=0

ruokang 发表于 2020-2-24 15:16:14

def fun1():
    tuple1 = (1, 2, 3, 4)
    list1 = []
    for baiwei in tuple1:
      for shiwei in tuple1:
            for gewei in tuple1:
                if baiwei != shiwei and baiwei != gewei and shiwei != gewei:
                  shuzi = 100*baiwei + 10*shiwei + gewei
                  list1.append(shuzi)
    return len(list1)

print(fun1())

lwje1009 发表于 2020-2-27 19:02:23

123

xiajianlei214 发表于 2020-2-29 17:14:27

list1 = []
for a in range(1,5):
    for b in range(1,5):
      for c in range(1,5):
            num = a * 100 +b * 10 + c
            if a != b and a != c and b != c:
               
                if num not in list1:
                  list1.append(num)

print('能组成 %d 个满足条件的三位数:' % len(list1))
print('分别为:' , list1)

dudaguo 发表于 2020-3-3 11:20:24

num=list(x+ y*10 + z*100 for z in range(1,5) for y in range(1,5) for x in range(1,5) if x != y != z)
len(num)
num

840613937 发表于 2020-3-10 16:15:15

婴儿乐 发表于 2020-3-14 12:57:09

e = []
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:
                d = 100*a+10*b+c
                e.append(d)
print('所有的符合条件的数值:',e)
print('所有符合条件的数值的个数:',len(e))

一个看似很简单的小项目,对于小白的自己来说自己真正动起手来才发现处处都会出错,不过幸好最后还是把它写出来了。也感谢楼上朋友们的提醒

婴儿乐 发表于 2020-3-14 12:58:48

婴儿乐 发表于 2020-3-14 12:57
一个看似很简单的小项目,对于小白的自己来说自己真正动起手来才发现处处都会出错,不过幸好最后还是把 ...

下次争取不看楼主们的提醒就能做出来{:5_95:}

simiyu 发表于 2020-3-14 17:31:11

from copy import deepcopy


def get(intlist, x=0, ct=''):
    if x < length:
      for i in intlist:
            temp = deepcopy(intlist)
            temp.remove(i)
            get(temp, x + 1, ct + str(i))
    else:
      alllist.append(int(ct))
      print(ct)


# 需要几位数
length = 3

# 结果存储
alllist = []

# 列表
intlist =

get(intlist)

魔法鳕鱼 发表于 2020-3-15 12:41:58

def func(list):
    all = []
    for x in list:
      for y in list:
            for z in list:
                if x != y and x != z and y != z:
                  all.append(str(x)+str(y)+str(z))
    return all

jimcomputer 发表于 2020-3-15 16:20:50

本帖最后由 jimcomputer 于 2020-3-15 16:25 编辑

count1=0
for num1 in range(1,5):
    for num2 in range(1,5):
      for num3 in range(1,5):
                if num1 != num2 and num2 != num3 and num1 != num3:
                  count1+=1
                  result=100*num1+10*num2+num3
                  print (count1,result)

jimcomputer 发表于 2020-3-15 17:24:33

solomonxian 发表于 2017-4-18 20:08
两两不相等,不试下用集合吗?
数字多起来的时候还是集合好用吧

len用得漂亮

whitney7 发表于 2020-3-17 14:59:16

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)
页: 3 4 5 6 7 8 9 10 11 12 [13] 14 15
查看完整版本: Python:每日一题 1