acgods 发表于 2018-8-22 18:11:58

本帖最后由 acgods 于 2018-8-22 18:52 编辑

number1 =
count = 0
for i in number1:
    for j in number1:
      for k in number1:
            if (i != j ) and (j != k) and (i != k):
                print(i,j,k)
                count += 1
print("这样的三位数字一共有:%d个" % count)


修改后的代码
number1 = range(1,5)
list1 = []
for i in number1:
    for j in number1:
      for k in number1:
            if (i != j ) and (j != k) and (i != k):
                temp = 100 * i + 10 * j + k
                list1.append(temp)
print(list1)
print("这样的三位数字一共有:%d个" % len(list1))

A小小鸟 发表于 2018-8-29 16:38:53

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

楼主,你的if条件太麻烦了,看我的
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)
直接出来

god圣锋 发表于 2018-9-3 12:12:05

count = 0

for i in range(1,5):
   
    for n in range(1,5):
      
      for j in range(1,5):
            
            if i != n and i != j and n != j:
                count += 1
                print(i*100+n*10+j,' ',end = ' ')
               
                if count % 5 == 0:
                  print('\n')

print('\n\n总共有%d个数' % count)

Tifinity 发表于 2018-9-12 00:33:58

s = 0
for a in range(1, 5):
    for b in range(1, 5):
      for c in range(1, 5):
            if(a!=b and b!=c and a!=c):
                print(a,b,c)
                s += 1
print("一共有",s,"种")

_玛莎_ 发表于 2018-9-12 16:08:27

count = 0
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('%d%d%d' % (i, j, k))
                count += 1
print(count)

龙战yl天下 发表于 2018-9-12 16:52:20


n=0
for i in range(1,5):
    for j inrange(1,5):
      for k in range(1,5):
            if ((i!=j)and(i!=k)and (j!=k)):
                n+=1
                print(i*100+j*10+k)
               
print('n=',n)


多多指教

945318498 发表于 2018-9-13 11:38:18

a =
for b in a:
        for c in a:
                for d in a:
                        if b != c and c != d and b!=d:
                                f = str(b)+str(c)+str(d)
                                print(f)
我来强行不一样一下

whoam1python 发表于 2018-9-18 10:52:18

24

吃鱼的虾 发表于 2018-10-2 11:23:21

for i in range(1,5):
    for m in range(1,5):
      for n in range(1,5):
            if i != m and i!=n and m!=n:
                num=i*100+m*10+n
                print(num)

            

liujian973 发表于 2018-10-6 18:01:10

for i in range(100,433):
    i=str(i)
    if len(set(i)) ==len(i) :
      list_i =
      if len(list_i)==3:print(i)

Cherish0 发表于 2018-10-12 17:09:56

list0 =
for hud in range(4):
    a = list0*100
    list1 = list0[:]
    del list1
    for ten in range(3):
      b = list1*10
      list2 = list1[:]
      del list2
      for num in range(2):
            c = list2
            print(a+b+c)

好嘛,我知道这很傻。。今天刚学了列表,于是就用列表来做的


看了五楼的答案,输出格式感觉不太正确,题目问的是三位数,五楼输出了三个数的排列,求大佬指导

Roc乘风 发表于 2018-10-13 12:06:43

本帖最后由 Roc乘风 于 2018-10-13 12:23 编辑

以下是我的答案:

num = 0
for x in range(1,5):
    for y in range(1,5):
      for z in range(1,5):
            if x != y != z :
                print('{0}{1}{2}'.format(x,y,z))
                num += 1
print("数字一共有{}个".format(num))


特别感谢大神给出的其他方案,学习到了itertools和 list 的一种变态写法,

Roc乘风 发表于 2018-10-13 12:30:18

A小小鸟 发表于 2018-8-29 16:38
楼主,你的if条件太麻烦了,看我的
for i in range(1,5):
    for j in range(1,5):


这样得出来的结果好像是错误的,一共36 组, 其中包含像121这样的组合是不符合要求的,

请问下 这是为什么呢??

dicky4x 发表于 2018-10-17 13:11:14

list1=[(a,b,c) for a in range(1,5) for b in range(1,5) for c in range (1,5) if a != b !=c]
print(list1)

zhangjk19841984 发表于 2018-10-18 14:22:59

count=0
i=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:
                a= 100 *x + 10 * y + z
                i+=1
                print('第{}个三位数是:{}'.format(i,a))
                count+=1

print('列表中的元素总共有:',count,'个')

a1070211241 发表于 2018-10-19 00:31:59

本帖最后由 a1070211241 于 2018-10-19 00:48 编辑

num =
result = []
max = 433
min = 123
for n in range(min, max):
    a = n // 100
    b = n % 100 // 10
    if b in num and a != b:
      c = n % 10
      if c in num and b != c and a != c:
            result.append(n)
print('共有 %d 个数字' % len(result))
print(result)
总感觉我的代码量太长了

keys866 发表于 2018-10-19 11:26:19

ooxx7788 发表于 2017-3-24 22:17
投机取巧

SyntaxError: multiple statements found while compiling a single statement

FREELINETOM 发表于 2018-10-19 18:43:13


for x in range(1,5):
    for y in range(1,5):
      for z in range(1,5):
          if x != y andx != z and y != z:
                print(x,y,z)

I_love_fishc_tj 发表于 2018-10-26 16:45:03

刚学完for循环 和 range 函数~~上次过来看这个题目的时候, 对着答案看 都一脸糊涂~~~

谢谢每日一题~

一边学一边记一下函数的用法~

I_love_fishc_tj 发表于 2018-10-27 13:48:31

a = [(x,y,z) for x in range(1,5) for y in range(1,5) for z in range(1,5) if x != y !=z]

页: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15
查看完整版本: Python:每日一题 1