#!/uer/bin/python
# -*- coding: utf-8 -*-
#有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
a=[1,2,3,4]
i=0
g=a[i],s=a[i],b=a[i]
while g<5 and s<5 and b<5:
while (g==s):
g=g+1
if (s==b):
b+1
if (b==g):
b+1
print g+10*s+100*b
运行结果:
你的程序明显不对的,g=a[i],s=a[i],b=a[i]这里,python不能用逗号直接写一堆赋值的,请换行,while里跟你的list一点关系都没有……为啥不直接g=1 s=1 b=1,再说你后面两个b+1都没有赋给b啊,再说中间应该是s=s+1吧,不过很遗憾简单改下之后是一直打印123的死循环。
看你是要不相同且无重复数字,所以无重复直接三个!=,不相同就把每次生成的都存到list里,新的出来跟list对比一下看有没有出现过就可以了。
语法不对,程序第三行,g=a[i], s=a[i],把逗号改为;分号,然后程序可以运行。
程序逻辑不对。
python如果用itertools库的话,这是一句话就搞定的事情。
import itertools感兴趣搜搜我的课程,用Python做些事,跟大家一起学吧。