Python 3 教程 在线

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集合的相对应的数据存到空列表里
'''

当然,有一种更方便的排序方式:

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 +",你输了!")