鱼C论坛

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

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

  [复制链接]
发表于 2018-8-22 18:11:58 | 显示全部楼层
本帖最后由 acgods 于 2018-8-22 18:52 编辑
number1 = [1,2,3,4]
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))
想知道小甲鱼最近在做啥?请访问 -> 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 | 显示全部楼层
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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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,"种")
想知道小甲鱼最近在做啥?请访问 -> 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 | 显示全部楼层
n=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)):
                n+=1
                print(i*100+j*10+k)
                
print('n=',n)

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

使用道具 举报

发表于 2018-9-13 11:38:18 | 显示全部楼层
a = [1,2,3,4]
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)
我来强行不一样一下
想知道小甲鱼最近在做啥?请访问 -> 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 | 显示全部楼层
list0 = [1,2,3,4]
for hud in range(4):
    a = list0[hud]*100 
    list1 = list0[:]
    del list1[hud]
    for ten in range(3):
        b = list1[ten]*10
        list2 = list1[:]
        del list2[ten]
        for num in range(2):
            c = list2[num]
            print(a+b+c)

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


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

使用道具 举报

发表于 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 的一种变态写法,
想知道小甲鱼最近在做啥?请访问 -> 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 编辑
num = [1, 2, 3, 4]
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)
总感觉我的代码量太长了
想知道小甲鱼最近在做啥?请访问 -> 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-11-23 04:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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