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版:
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集合的相对应的数据存到空列表里 '''当然,有一种更方便的排序方式:
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 +",你输了!")