鱼C论坛

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

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

  [复制链接]
发表于 2018-11-28 13:47:52 | 显示全部楼层
list=[]

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):
                list.append(x*100+y*10+z)

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

使用道具 举报

发表于 2018-12-3 15:32:13 | 显示全部楼层
count = 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:
                count += 1
                print(int(str(x)+str(y)+str(z)))
print('一共有 %d 个数'%count)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-4 17:51:42 | 显示全部楼层
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-12-5 10:04:26 | 显示全部楼层
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if(i==j or i==k or j==k):
                continue
            else:
                gewei=k
                shiwei=j
                baiwei=i
                number=str(baiwei)+str(shiwei)+str(gewei)
                print(number)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-6 20:43:33 | 显示全部楼层
sum=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 :
                sum+=1
                num=i*100+j*10+k
                print(num)
print(sum)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-9 15:27:32 | 显示全部楼层
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-12-11 19:54:59 | 显示全部楼层
sum = 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 ):
                temp = a*100 + b*10 +c
                sum += 1
                print(temp,end=" ")
print(sum)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-15 14:20:23 | 显示全部楼层
本帖最后由 wwyy 于 2018-12-15 14:22 编辑
result = []
number = [1,2,3,4]
for i in range(0,4):
        for m in range(0,4):
                if i == m:
                        continue
                for n in range(0,4):
                        if n == m or n == i:
                                continue
                        result.append(number[i]*100+number[m]*10+number[n])

result
[123, 124, 132, 134, 142, 143, 213, 214, 231, 234, 241, 243, 312, 314, 321, 324, 341, 342, 412, 413, 421, 423, 431, 432]
len(result)
24
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-18 11:48:46 | 显示全部楼层
自己写了几个不同的版本
第一个版本是比较容易想到比较简单的一种。
#基础版
num=0
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)
                                num += 1
第二个版本是使用了list的版本
#列表版
mylist=[1,2,3,4]
print (mylist)
newlist =list()
for x in mylist:
        for y in mylist:
                for z in mylist:
                        if x!=y and y!=z and z!=x:
                                newlist.append(x*100+y*10+z)
print ('共有',len(newlist),'个')
print (newlist)
第三个版本是list改进版
#列表进阶版
mylist=[1,2,3,4]
print (mylist)
newlist=[x*100+y*10+z for x in mylist for y in mylist for z in mylist if x!=y and y!=z and x!=z]
print ('共有',len(newlist),'个')
print (newlist)
第四个版本是使用set的版本
#集合版
mylist=[1,2,3,4]
print (mylist)
myset=set()
myset.update(x*100+y*10+z for x in mylist for y in mylist for z in mylist if x!=y and y!=z and x!=z)
print ('共有',len(myset),'个')
print (myset)
第五个版本是使用了itertools
#迭代器版
#既可以用list也可以用set,若用set,则将第四行最外层的[]改为{}
import itertools
mylist=[x[0]*100+x[1]*10+x[2] for x in itertools.permutations([1,2,3,4],3)]
print ('共有',len(mylist),'个')
print (mylist)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-27 15:00:38 | 显示全部楼层
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)

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

使用道具 举报

发表于 2018-12-31 11:16:42 | 显示全部楼层
本帖最后由 nnxiaod 于 2018-12-31 11:22 编辑

看了各位大佬的五体投地。。。
numbers = (1, 2, 3, 4)
result = []
i, j, k = 0, 0, 0
while i < 4:
    while j < 4:
        while k < 4:
            if numbers[i] != numbers[j] and numbers[i] != numbers[k] and numbers[j] != numbers[k]:
                result.append(numbers[i] * 100 + numbers[j] * 10 + numbers[k])
            k += 1
        j += 1
        k = 0
    i += 1
    j = 0
print(len(result))
print(result)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-2 21:27:50 | 显示全部楼层
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, end="")
                                print(j, end="")
                                print(k, end="")
                                print()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-12 16:57:16 | 显示全部楼层
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if i != k and i != j and j != k:
                print(i,j,k)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-14 21:20:11 | 显示全部楼层
arr = []
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)):
                        tem = a*100 + b*10 + c
                        arr.append(tem)                                          
print('共有%d个互不相同且无重复数字的三位数'%len(arr))
print('他们是')

for i,j in enumerate(arr):
      print('第%d个数字是:'%(i+1),j)
#枚举函数 enumerate 可以获得索引和值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-2 22:10:12 | 显示全部楼层
for a in range(1,5):
    for b in range(1,5):
        for c in range(1,5):
            if a != b != c:
                print(a,b,c)
            
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-12 13:50:29 | 显示全部楼层
#有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
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,j,k)

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

使用道具 举报

发表于 2019-2-19 22:08:22 | 显示全部楼层
sum=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 (i,j,k)
               sum=sum+1
print('共有',sum,'种组合')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-28 15:24:59 | 显示全部楼层
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
回复 支持 反对

使用道具 举报

发表于 2019-3-5 20:45:27 | 显示全部楼层
num=0
for i in range(1,5):
    for j in range(1,5):
        if i==j:
            continue
        for k in range(1,5):
            if i==k:
                continue
            elif j==k:
                continue
            else:
                num+=1
                print(i*100+j*10+k)
print(num)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-18 10:57:51 | 显示全部楼层
本帖最后由 zjhahaha 于 2019-3-18 11:04 编辑

ll=[]
for i in range(1,5):
    for j in range(1,5):
        if i == j:
            continue
        else:
            for k in range(1,5):
                if i != k and i != j and j != k:
                    ls=[]
                    ls.append(i)
                    ls.append(j)
                    ls.append(k)
                    ll.append(tuple(ls))
                    #print(i,j,k)
print(len(ll))
for w in ll:
    print(w)
&#8203;
24
(1, 2, 3)
(1, 2, 4)
(1, 3, 2)
(1, 3, 4)
(1, 4, 2)
(1, 4, 3)
(2, 1, 3)
(2, 1, 4)
(2, 3, 1)
(2, 3, 4)
(2, 4, 1)
(2, 4, 3)
(3, 1, 2)
(3, 1, 4)
(3, 2, 1)
(3, 2, 4)
(3, 4, 1)
(3, 4, 2)
(4, 1, 2)
(4, 1, 3)
(4, 2, 1)
(4, 2, 3)
(4, 3, 1)
(4, 3, 2)
&#8203;
ll=[]
for i in range(1,5):
    for j in range(1,5):
        #减少循环步骤
        if i == j:
            continue
        else:
            for k in range(1,5):
                if i != k and i != j and j != k:
                    ls=[]
                    ls.append(i)
                    ls.append(j)
                    ls.append(k)
                    ll.append(tuple(ls))
                    #print(i,j,k)
print(“可组成的数量为{}”.format(len(ll)))
for w in ll:
    print("组成:"+w)
  File "<ipython-input-5-5f40a9f002fc>", line 17
    print(“可组成的数量为{}”.format(len(ll)))
                 ^
SyntaxError: invalid character in identifier
"
&#8203;
ll=[]
for i in range(1,5):
    for j in range(1,5):
        #减少循环步骤
        if i == j:
            continue
        else:
            for k in range(1,5):
                if i != k and i != j and j != k:
                    ls=[]
                    ls.append(i)
                    ls.append(j)
                    ls.append(k)
                    ll.append(tuple(ls))
                    #print(i,j,k)
print("可组成的数量为{}.format(len(ll)))
for w in ll:
    print("组成:"+w)
  File "<ipython-input-6-d50335e9eabf>", line 17
    print("可组成的数量为{}.format(len(ll)))
                                     ^
SyntaxError: EOL while scanning string literal
&#8203;
ll=[]
for i in range(1,5):
    for j in range(1,5):
        #减少循环步骤
        if i == j:
            continue
        else:
            for k in range(1,5):
                if i != k and i != j and j != k:
                    ls=[]
                    ls.append(i)
                    ls.append(j)
                    ls.append(k)
                    ll.append(tuple(ls))
                    #print(i,j,k)
print("可组成的数量为{}.format(len(ll)))
for w in ll:
    print("组成:"+w)
  File "<ipython-input-7-d50335e9eabf>", line 17
    print("可组成的数量为{}.format(len(ll)))
                                     ^
SyntaxError: EOL while scanning string literal
ll=[]
for i in range(1,5):
    for j in range(1,5):
        #减少循环步骤
        if i == j:
            continue
        else:
            for k in range(1,5):
                if i != k and i != j and j != k:
                    ls=[]
                    ls.append(i)
                    ls.append(j)
                    ls.append(k)
                    ll.append(tuple(ls))
                    #print(i,j,k)
print("可组成的数量为{}".format(len(ll)))
for w in ll:
    print("组成:{}".format(w))
可组成的数量为24
组成:(1, 2, 3)
组成:(1, 2, 4)
组成:(1, 3, 2)
组成:(1, 3, 4)
组成:(1, 4, 2)
组成:(1, 4, 3)
组成:(2, 1, 3)
组成:(2, 1, 4)
组成:(2, 3, 1)
组成:(2, 3, 4)
组成:(2, 4, 1)
组成:(2, 4, 3)
组成:(3, 1, 2)
组成:(3, 1, 4)
组成:(3, 2, 1)
组成:(3, 2, 4)
组成:(3, 4, 1)
组成:(3, 4, 2)
组成:(4, 1, 2)
组成:(4, 1, 3)
组成:(4, 2, 1)
组成:(4, 2, 3)
组成:(4, 3, 1)
组成:(4, 3, 2)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 04:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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