鱼C论坛

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

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

  [复制链接]
发表于 2018-8-22 18:11:58 | 显示全部楼层
本帖最后由 acgods 于 2018-8-22 18:52 编辑
  1. number1 = [1,2,3,4]
  2. count = 0
  3. for i in number1:
  4.     for j in number1:
  5.         for k in number1:
  6.             if (i != j ) and (j != k) and (i != k):
  7.                 print(i,j,k)
  8.                 count += 1
  9. print("这样的三位数字一共有:%d个" % count)
复制代码



修改后的代码
  1. number1 = range(1,5)
  2. list1 = []
  3. for i in number1:
  4.     for j in number1:
  5.         for k in number1:
  6.             if (i != j ) and (j != k) and (i != k):
  7.                 temp = 100 * i + 10 * j + k
  8.                 list1.append(temp)
  9. print(list1)
  10. print("这样的三位数字一共有:%d个" % len(list1))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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)
直接出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-3 12:12:05 | 显示全部楼层
  1. count = 0

  2. for i in range(1,5):
  3.    
  4.     for n in range(1,5):
  5.         
  6.         for j in range(1,5):
  7.             
  8.             if i != n and i != j and n != j:
  9.                 count += 1
  10.                 print(i*100+n*10+j,' ',end = ' ')
  11.                
  12.                 if count % 5 == 0:
  13.                     print('\n')

  14. print('\n\n总共有%d个数' % count)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-12 00:33:58 | 显示全部楼层
  1. s = 0
  2. for a in range(1, 5):
  3.     for b in range(1, 5):
  4.         for c in range(1, 5):
  5.             if(a!=b and b!=c and a!=c):
  6.                 print(a,b,c)
  7.                 s += 1
  8. print("一共有",s,"种")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-12 16:52:20 | 显示全部楼层

  1. n=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!=j)and(i!=k)and (j!=k)):
  6.                 n+=1
  7.                 print(i*100+j*10+k)
  8.                
  9. print('n=',n)
复制代码


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

使用道具 举报

发表于 2018-9-13 11:38:18 | 显示全部楼层
  1. a = [1,2,3,4]
  2. for b in a:
  3.         for c in a:
  4.                 for d in a:
  5.                         if b != c and c != d and b!=d:
  6.                                 f = str(b)+str(c)+str(d)
  7.                                 print(f)
复制代码

我来强行不一样一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-18 10:52:18 | 显示全部楼层
[123, 124, 132, 134, 142, 143, 213, 214, 231, 234, 241, 243, 312, 314, 321, 324, 341, 342, 412, 413, 421, 423, 431, 432] 24
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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)

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

使用道具 举报

发表于 2018-10-6 18:01:10 | 显示全部楼层
for i in range(100,433):
    i=str(i)
    if len(set(i)) ==len(i) :
        list_i =[j for j in i if 4 >= int(j) >0 ]
        if len(list_i)==3:print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-12 17:09:56 | 显示全部楼层
  1. list0 = [1,2,3,4]
  2. for hud in range(4):
  3.     a = list0[hud]*100
  4.     list1 = list0[:]
  5.     del list1[hud]
  6.     for ten in range(3):
  7.         b = list1[ten]*10
  8.         list2 = list1[:]
  9.         del list2[ten]
  10.         for num in range(2):
  11.             c = list2[num]
  12.             print(a+b+c)
复制代码


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


看了五楼的答案,输出格式感觉不太正确,题目问的是三位数,五楼输出了三个数的排列,求大佬指导
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-13 12:06:43 | 显示全部楼层
本帖最后由 Roc乘风 于 2018-10-13 12:23 编辑

以下是我的答案:

  1. num = 0
  2. for x in range(1,5):
  3.     for y in range(1,5):
  4.         for z in range(1,5):
  5.             if x != y != z :
  6.                 print('{0}{1}{2}'.format(x,y,z))
  7.                 num += 1
  8. print("数字一共有{}个".format(num))
复制代码



特别感谢大神给出的其他方案,学习到了itertools  和 list 的一种变态写法,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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  这样的组合是不符合要求的,

请问下 这是为什么呢??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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,'个')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-19 00:31:59 | 显示全部楼层
本帖最后由 a1070211241 于 2018-10-19 00:48 编辑
  1. num = [1, 2, 3, 4]
  2. result = []
  3. max = 433
  4. min = 123
  5. for n in range(min, max):
  6.     a = n // 100
  7.     b = n % 100 // 10
  8.     if b in num and a != b:
  9.         c = n % 10
  10.         if c in num and b != c and a != c:
  11.             result.append(n)
  12. print('共有 %d 个数字' % len(result))
  13. print(result)
复制代码

总感觉我的代码量太长了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-19 11:26:19 | 显示全部楼层

SyntaxError: multiple statements found while compiling a single statement
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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 and  x != z and y != z:
                print(x,y,z)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-26 16:45:03 | 显示全部楼层
刚学完for循环 和 range 函数~~  上次过来看这个题目的时候, 对着答案看 都一脸糊涂~~~

谢谢每日一题~

一边学一边记一下函数的用法~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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]

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 01:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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