a=[1,5,4,2,2,21,12,7,0]
b=list(set(a)) # 建立新的列表,嵌套的是集合(除去冗余元素并自动排序)
c=[] # 建立空列表,用来存放选择排序的数据
for j in b: #集合列表中选择元素
for i in a: #列表中选择元素,
if i ==j:
c.append(i)
print(c)
'''
我输入的列表元素集合有:1,2,4,5,12,21(已排好序并除去冗余)
其中我依次选择集合中的各个数据,与原来列表的元素相比
如果相等,我就把a集合的相对应的数据存到空列表里
'''
当然,有一种更方便的排序方式:
a=[1,2,5,8,3,6,6,6,6,6]
a.sort()
print(a)
1117Python3 循环语句
生成直观的九连环解法:
#!/usr/bin/python
x = ["-θ","-θ","-θ","-θ","-θ","-θ","-θ","-θ","-θ"]
y = ["—","—","—","—","—","—","—","—","—"]
def down(n, l): #拆解
v = len(l) #计算数列个数用于改变数列对应位置
if n>2:
down(n-2, l) #拆下n-2的环
l[v-n] = "—" #将v-n位"-θ"改为"—" 表示拆下
for x in l: #输出列表每一个元素
print(x,end=' ')
print() #换行
up(n-2, l) #装上n-2位
down(n-1, l)#拆下n-1位, 后面同理
if n==2:
l[v-2], l[v-1] ="—","—"
for x in l:
print(x,end=' ')
print()
if n<2:
l[v-1] = "—"
for x in l:
print(x,end=' ')
print()
def up(n, l):
v = len(l)
if n>2:
up(n-1, l)
down(n-2, l)
l[v-n] = "-θ"
for x in l:
print(x,end=' ')
print()
up(n-2, l)
if n==2:
l[v-2], l[v-1] = "-θ","-θ"
for x in l:
print(x,end=' ')
print()
if n<2:
l[v-1] ="-θ"
for x in l:
print(x,end=' ')
print()
print("拆解\n")
for i in x:
print(i,end=' ')
print()
down(9, x)
print('---------------------------------\n','装上\n')
for i in y:
print(i,end=' ')
print()
up(9, y)
print("结束")
九连环拆解,递归算法
def down(n):
if n>2:
down(n-2)
print('卸下',n,'环')
up(n-2)
down(n-1)
if n==2:
print('卸下 {},{} 环'.format(n,n-1))
if n<2:
print('卸下',n,'环')
def up(n):
if n>2:
up(n-1)
down(n-2)
print("装上",n,"环")
up(n-2)
if n==2:
print("装上 %d,%d 环" % (n,n-1))
if n<2:
print("装上",n,"环")
print("拆解")
down(2)
print('---------------------------------\n','装上')
up(3)
print("结束")
1116Python3 循环语句
彩票游戏
import random
t1="开始游戏"
t2="结束游戏"
print(t1.center(50,"*"))
data1=[]
money=int(input("输入投入的金额:"))
print("你现在余额为:%d元"%money)
while 1:
for i in range(6):
n = random.choice([0, 1])
data1.append(n)
if money<2:
print("你的余额不足,请充值")
m=input("输入投入的金额:")
if int(m)==0:
break
else:
money=int(m)
while 1:
j=int(input("输入购买彩票数量"))
if money-j*2<0:
print("购买后余额不足,请重新输入")
else:
money = money - j * 2
print("你现在余额为:%d元" % money)
break
print("提示:中奖数据有六位数,每位数为0或者1")
n2=input("请猜测中奖数据:(输入的数字为0或1)")
print(str(data1))
f=[]
for x in n2:
f.append(x)
f1 = str(f)
f2 = f1.split("'")
f3 = "".join(f2)
print("你猜测的数据为:", f3)
if f3==str(data1):
print("中奖数字为:",data1)
print("恭喜你中大奖啦")
money=money+j*100
print("你现在余额为:%d元" % money)
else:
print("中奖数字为:", data1)
print("没有中奖,请继续加油")
con = input("请问还要继续么?结束请输入no,继续请任意输入字符:")
if con=="no":
break
data1=[]
print(t2.center(50,"*"))
print("你的余额为:%d元"%money)
1115Python3 循环语句
原九九乘法表逆时针输出:
<pre>for i in range(9,0,-1):
for j in range (1,i):
print("\t",end="")
for k in range (i,10):
print("%dx%d=%d" % (i,k,k*i), end="\t")
print()
1114Python3 循环语句
猜拳小游戏
import random
while 1:
s=int(random.randint(1,3))
if s==1:
ind="石头"
elif s==2:
ind="剪刀"
elif s==3:
ind="布"
m=input('输入石头,剪刀,布,输入end结束游戏:')
blist=['石头','剪刀','布']
if(m not in blist) and (m!='end'):
print("输入错误,重试:")
elif(m=='end')and(m not in blist):
print(ind)
print("\n游戏退出")
break
elif m==ind:
print("平")
elif (m == '石头' and ind =='剪刀') or (m == '剪刀' and ind =='布') or (m == '布' and ind =='石头'):
print ("电脑出了: " + ind +",你赢了!")
else:
print ("电脑出了: " + ind +",你输了!")
1118Python3 循环语句
选择排序python版:
当然,有一种更方便的排序方式:
1117Python3 循环语句
生成直观的九连环解法:
九连环拆解,递归算法
1116Python3 循环语句
彩票游戏
1115Python3 循环语句
原九九乘法表逆时针输出:
1114Python3 循环语句
猜拳小游戏