Crossin的编程教室
标题: 【Python 第27课】 list切片 [打印本页]
作者: crossin先生 时间: 2014-4-24 18:33
标题: 【Python 第27课】 list切片
list有两类常用操作:索引(index)和切片(slice)。
昨天我们说的用[]加序号访问的方法就是索引操作。
除了指定位置进行索引外,list还可以处理负数的索引。继续用昨天的例子:
l = [365, 'everyday', 0.618, True]
l[-1]表示l中的最后一个元素。
l[-3]表示倒数第3个元素。
切片操作符是在[]内提供一对可选数字,用:分割。冒号前的数表示切片的开始位置,冒号后的数字表示切片到哪里结束。同样,计数从0开始。
注意,开始位置包含在切片中,而结束位置不包括。
l[1:3]
得到的结果是['everyday', 0.618]。
如果不指定第一个数,切片就从列表第一个元素开始。
如果不指定第二个数,就一直到最后一个元素结束。
都不指定,则返回整个列表的一个拷贝。
l[:3]
l[1:]
l[:]
同索引一样,切片中的数字也可以使用负数。比如:
l[1:-1]
得到['everyday', 0.618]
#==== 点球小游戏 ====#
昨天有了一次罚球的过程,今天我就让它循环5次,并且记录下得分。先不判断胜负。
用score_you表示你的得分,score_com表示电脑得分。开始都为0,每进一球就加1。
from random import choice
score_you = 0
score_com = 0
direction = ['left', 'center', 'right']
for i in range(5):
print '==== Round %d - You Kick! ====' % (i+1)
print 'Choose one side to shoot:'
print 'left, center, right'
you = raw_input()
print 'You kicked ' + you
com = choice(direction)
print 'Computer saved ' + com
if you != com:
print 'Goal!'
score_you += 1
else:
print 'Oops...'
print 'Score: %d(you) - %d(com)\n' % (score_you, score_com)
print '==== Round %d - You Save! ====' % (i+1)
print 'Choose one side to save:'
print 'left, center, right'
you = raw_input()
print 'You saved ' + you
com = choice(direction)
print 'Computer kicked ' + com
if you == com:
print 'Saved!'
else:
print 'Oops...'
score_com += 1
print 'Score: %d(you) - %d(com)\n' % (score_you, score_com)
注意:手机上代码有可能会被换行。
这段代码里有两段相似度很高,想想是不是可以有办法可以用个函数把它们分离出来。
作者: zzxomg 时间: 2015-3-13 14:46
- #coding:utf-8
- #football游戏,电脑随机进行扑救(左中右),你进行射门,三个方向,看能不能射进
- #football1.0
- #zzx 2015.03.12
- from random import choice
- print'------------------------欢迎来到欧冠点球的决胜时刻,请屏住呼吸,拭目以待吧---------------------------'
- #方向
- direction = ['left','middle','right']
- #电脑扑救方法
- def fight(name='computer') :
- if name == 'computer':
- dic = choice(direction)
- print'守门员%s迅速扑救,他扑向了皮球的%s方向。他能否守住呢?\n' %(name,dic)
- else :
- dic = raw_input('请输入您要扑球的方向(left,middle,right),看你能够抵挡住这世界波。')
- print'守门员%s迅速扑救,他扑向了球门的%s方向。他能否守住呢?\n' %(name,dic)
- return dic
- #输入射门
- def shoot(name='computer') :
- if name == 'computer':
- dic = choice(direction)
- print '\n%s发出了世界波,像球门快速飞来,你要赶快判断他的方向,守住大门!\n'%name
- else:
- dic = raw_input('请输入你要射门的方向(left,middle,right),关键一球哦!\n')
- print '\n%s发出了世界波,射向了球门的%s方向,你期待这进球的那一刻\n'%(name,dic)
- return dic
- def judge(shootDic,fightDic) :
- if shootDic == fightDic :
- print 'omg,伟大的守门员拯救了这场比赛。他将球扑出了球门。\n'
- return True
- else:
- print '球进了,恭喜你,伟大的射手!\n'
- return False
- #开始比赛
- man_point = 0;
- computer_point = 0;
- man = raw_input('请输入你的姓名:')
- for i in range(1,4):
- #人先射门,电脑守门
- print '下面由%s先主发点球,祈祷吧!'%man
- shootDic = shoot(man)
- fightDic = fight()
- res = judge(shootDic,fightDic)
- if not res :
- man_point+=1
- print '好样的%s,球进了,加一分,总分为%d'%(man,man_point)
- #电脑射门,人守门
- print '交换场地,下面由电脑先发球'
- shootDic2 = shoot()
- fightDic2 = fight(man)
- res2 = judge(shootDic2,fightDic2)
- if not res2 :
- computer_point+=1
- print '好样的computer,球进了加一份,得分为%d'%computer_point
- print '总成绩是:%s--%d-----------computer--%d'%(man,man_point,computer_point)
- if man_point > computer_point :
- print '恭喜你,最终你赢得了胜利,伟大的射手----%s'%man
- elif man_point<computer_point :
- print '很遗憾,电脑赢得了胜利,你输了,再接再厉吧'
- else:
- print '平手啊,你和电脑一样厉害'
复制代码
作者: cross 时间: 2015-4-22 10:40
楼上的代码好棒啊
作者: lovia 时间: 2015-5-27 22:25
优化了一点点,不涉及技术- #coding:gbk #我的电脑用gbk才能显示汉字名字
- #football游戏,电脑随机进行扑救(左中右),你进行射门,三个方向,看能不能射进
- #football1.0
- #zzx 2015.03.12
- from random import choice
- print'------------------------欢迎来到欧冠点球的决胜时刻,请屏住呼吸,拭目以待吧---------------------------'
- #方向
- direction = ['left','middle','right']
- #电脑扑救方法
- def fight(name='computer') :
- if name == 'computer':
- dic = choice(direction)
- print'守门员%s迅速扑救,他扑向了皮球的%s方向。他能否守住呢?\n' %(name,dic)
- else :
- dic = raw_input('请输入您要扑球的方向(left,middle,right),看你能够抵挡住这世界波。\n')
- print'守门员%s迅速扑救,他扑向了球门的%s方向。他能否守住呢?\n' %(name,dic)
- return dic
- #输入射门
- def shoot(name='computer') :
- if name == 'computer':
- dic = choice(direction)
- print '\n%s发出了世界波,像球门快速飞来,你要赶快判断他的方向,守住大门!\n'%name
- else:
- dic = raw_input('请输入你要射门的方向(left,middle,right),关键一球哦!\n')
- print '\n%s发出了世界波,射向了球门的%s方向,你期待这进球的那一刻\n'%(name,dic)
- return dic
- def judge(shootDic,fightDic) :
- if shootDic == fightDic :
- print 'omg,伟大的守门员拯救了这场比赛。他将球扑出了球门。\n'
- return True
- else:
- print '球进了,恭喜你,伟大的射手!\n'
- return False
- #开始比赛
- man_point = 0 #初始化人分数,此处不需要分号
- computer_point = 0 #初始化电脑分数,此处不需要分号
- man = raw_input('请输入你的姓名:')
- for i in range(1,4):
- #人先射门,电脑守门
- print '下面由%s先主发点球,祈祷吧!'%man
- shootDic = shoot(man) #调用shoot函数,并赋值name=你的名字,执行else部分,就是crossin部分简单的,返回你的选择方向
- fightDic = fight() #调用fight函数,返回电脑的选择方向
- res = judge(shootDic,fightDic)
- if not res :
- man_point+=1
- print '好样的%s,球进了,加一分,总分为%d'%(man,man_point)
- #电脑射门,人守门
- print '交换场地,下面由电脑先发球'
- shootDic2 = shoot()
- fightDic2 = fight(man)
- res2 = judge(shootDic2,fightDic2)
- if not res2 :
- computer_point+=1
- print '好样的computer,球进了加一份,得分为%d'%computer_point
- print '总成绩是:%s--%d-----------computer--%d'%(man,man_point,computer_point)
- if man_point > computer_point :
- print '恭喜你,最终你赢得了胜利,伟大的射手----%s'%man
- elif man_point<computer_point :
- print '很遗憾,电脑赢得了胜利,你输了,再接再厉吧'
- else:
- print '平手啊,你和电脑一样厉害'
复制代码
作者: lovia 时间: 2015-5-27 22:25
太懒了,看了一部分
作者: 草办 时间: 2015-12-4 17:29
表示学习阶段,这样没必要的东西搞得太复杂反而不好吧
作者: 周末晒被子 时间: 2015-12-5 12:24
本帖最后由 周末晒被子 于 2015-12-5 12:25 编辑
Crossin先生,您在这节课的结尾说,能不能把代码中两端相似度高的部分分离出来,写成函数。
我发现函数只能写到 you=raw_input 为止,一旦包进去,就会提示下面函数外面的 you 未被定义。
如果是先生的话,会怎么把这两段代码函数化呢?
作者: crossin先生 时间: 2015-12-5 20:49
周末晒被子 发表于 2015-12-5 12:24
Crossin先生,您在这节课的结尾说,能不能把代码中两端相似度高的部分分离出来,写成函数。
我发现函数只 ...
变量是有作用域的,函数里面的变量,对于外面来说是看不见的,要通过参数和返回值来得到结果
作者: 周末晒被子 时间: 2015-12-7 13:35
本帖最后由 周末晒被子 于 2015-12-7 13:43 编辑
谢谢Crossin先生的回复~
那个,我不明白先生这节课结尾的这句话是什么意思:
“这段代码里有两段相似度很高,想想是不是可以有办法可以用个函数把它们分离出来。”
我一开始的理解是:==== Round %d - You Kick! ====和==== Round %d - You Save! ====的相似度高,那么比较出这两段代码的不同之处,用参数代替不同之处,来定义成函数e。可以用两遍函数e,也算有点省力。
但是我发现写不出来函数e,就是因为到了两段代码的if you==(!=)com:之后的部分太不一样了,连加分的位置都不一样,所以我把函数的范围缩小到if you==(!=)com:以上的部分,但是因为you不作用到函数外面,所以程序会在if you==(!=)com:这里报错。
所以我就来问问先生会怎么写这个函数。
但是后来看到先生是把==== Round %d - You Kick! ====和==== Round %d - You Save! ====作为一轮,并在一起写成函数来用,更好。
作者: 周末晒被子 时间: 2015-12-7 13:41
本帖最后由 周末晒被子 于 2015-12-7 13:43 编辑
后来我自己写了一个点球小游戏,如何描述射门的部分借鉴了先生的设计,5轮点球、5轮打平之后一球生死战,都是借鉴了您的设计。
呃,不能上传.py文件,但是代码太长了就不放上来了。
作者: crossin先生 时间: 2015-12-7 21:40
周末晒被子 发表于 2015-12-7 13:41
后来我自己写了一个点球小游戏,如何描述射门的部分借鉴了先生的设计,5轮点球、5轮打平之后一球生死战,都 ...
可以上传文件的,点回复框上面那个回形针图标就可以
作者: 周末晒被子 时间: 2015-12-7 23:06
本帖最后由 周末晒被子 于 2015-12-8 12:44 编辑
crossin先生 发表于 2015-12-7 21:40
可以上传文件的,点回复框上面那个回形针图标就可以
希望Crossin先生能给一点一意见...
-
5C84.tmp.jpg
(6.9 KB, 下载次数: 401)
-
-
点球小游戏.zip
1.73 KB, 下载次数: 5
只好压缩了
作者: 我是一个小菜鸟 时间: 2015-12-14 17:16
代码分离再看看,先贴:
# -*-coding=utf-8 -*-
from random import choice
n=0
print('Choice one side to shoot:')
dictionary=['left','right','conter']
for i in range(5):
print("left,conter,right")
you=raw_input()
print 'you kicked' + you
com=choice(dictionary)
if you!=com:
print("臭脚!!")
else:
n+=1
print("踢进...") and n
作者: crossin先生 时间: 2015-12-14 23:43
我是一个小菜鸟 发表于 2015-12-14 17:16
代码分离再看看,先贴:
# -*-coding=utf-8 -*-
from random import choice
print("踢进...") and n
这里不对吧
print("踢进...") , n
作者: 我是一个小菜鸟 时间: 2015-12-15 09:53
crossin先生 发表于 2015-12-14 23:43
print("踢进...") and n
这里不对吧
print("踢进...") , n
额,写出来的时候,用的是python2.7正常,也没再用3.5执行过,马马虎虎了
作者: 我是一个小菜鸟 时间: 2015-12-15 10:18
我是一个小菜鸟 发表于 2015-12-14 17:16
代码分离再看看,先贴:
# -*-coding=utf-8 -*-
from random import choice
版本:python3.5
# -*-coding=utf-8 -*-
from random import choice
n=0
print('Choice one side to shoot:')
dictionary=['left','right','conter']
for i in range(5):
print("left,conter,right")
you=input()
print (' you kicked ' + you)
com=choice(dictionary)
if you!=com:
print("臭脚!!")
else:
n=n+1
print("踢进...")
print(n)
作者: 我是一个小菜鸟 时间: 2015-12-15 10:46
# -*-coding=utf-8 -*-
from random import choice
n=0
print('Choice one side to shoot:')
dictionary=['left','right','conter']
for i in range(5):
print("left,conter,right")
you=input()
print (' you kicked ' ,you)
com=choice(dictionary)
if you!=com:
print("臭脚!!")
else:
n=n+1
print("踢进,得分:",n)
作者: catherinemic 时间: 2015-12-31 18:07
哼哧哼哧终于写出来了,自己run了两次,应该没有问题,就是感觉也没有比不加函数更简单,不过还是很有成就感的~~
另外,请教crossin老师,在定义函数参数的取值时,我是用if分别设定的,有没有办法比这个再简洁一点呢?- from random import choice
- score_you=0
- score_com=0
- direction=['left','center','right']
- def game(action, round_no):
- if action=='Shoot':
- pasttense1='shot'
- pasttense2='saved'
- small_l='shoot'
- result1='Goal!'
- result2='Oops...'
- if action=='Save':
- pasttense1='saved'
- pasttense2='shot'
- small_l='save'
- result1='Oops...'
- result2='Saved!'
- print '==== Round %d - You %s! ===='%(round_no,action)
- print 'Choose one side to %s: left, center, right'%(small_l)
- you=raw_input()
- print 'you %s '%pasttense1 + you
- com=choice(direction)
- print 'computer %s '%pasttense2 + com
- if you != com:
- print result1
- return 1
- else:
- print result2
- return 0
-
- for i in range(5):
- score_you += game('Shoot',i+1)
- print 'Score: %d(you) - %d(com)\n'%(score_you, score_com)
- score_com += game('Save',i+1)
- print 'Score: %d(you) - %d(com)\n'%(score_you, score_com)
复制代码
-
Python13.png
(15.39 KB, 下载次数: 402)
作者: crossin先生 时间: 2016-1-1 22:49
catherinemic 发表于 2015-12-31 18:07
哼哧哼哧终于写出来了,自己run了两次,应该没有问题,就是感觉也没有比不加函数更简单,不过还是很有成就 ...
用if判断没什么问题。
或者你也可以分成两个函数
作者: catherinemic 时间: 2016-1-2 09:56
crossin先生 发表于 2016-1-1 22:49
用if判断没什么问题。
或者你也可以分成两个函数
Ok,谢谢crossin先生,元旦快乐!
作者: crossin先生 时间: 2016-1-2 23:53
catherinemic 发表于 2016-1-2 09:56
Ok,谢谢crossin先生,元旦快乐!
新年快乐
作者: 谢冰 时间: 2016-2-6 18:39
有一个bug,如果在进球的时候同时输入左,中,右方向,电脑无论防守哪个方向都会输……
作者: crossin先生 时间: 2016-2-7 15:43
谢冰 发表于 2016-2-6 18:39
有一个bug,如果在进球的时候同时输入左,中,右方向,电脑无论防守哪个方向都会输…… ...
是。你只要不按规则输入,就能赢。所以可以额外再加上限制
作者: FPOS 时间: 2016-5-21 15:42
from random import choice
print 'choose one side to shoot.'
print 'left,center,right'
left='l'
center='c'
right='r'
direction=[left,center,right]
win = 0
lose = 0
for i in range(1,6):
youC=raw_input()
c=choice(direction)
print 'the ' +str(i)+ ' game'
if youC != c:
print "you win"
win += 1
print 'win:lose'
print str(win)+'-'+str(lose)
else:
print"you lose"
lose += 1
print 'win:lose'
print str(win)+'-'+str(lose)
if win>lose:
print'you are winer'
else:
print'you are loser'
睡觉的时候想了好久,到电脑上自信输入,
然后改了很久的小错误。
运行成功后有尴尬了,达不到预想的功能,想了好久才想到是输入没放到循环里,导致只输出一次,改正之后就是增加细节,
又在print上卡了好久怎么在print打印的内容换行。最后找不到解决的办法只好用了两个print.
作者: crossin先生 时间: 2016-5-21 22:25
FPOS 发表于 2016-5-21 15:42
from random import choice
print 'choose one side to shoot.'
print 'left,center,right'
两个print可以的
或者字符串里加上换行符 \n
作者: dashandtony 时间: 2016-7-9 08:04
m=input()
n=input()
def shootgame(m,n):
from random import choice
direction=['left','right', 'middle']
b=choice(direction)
a=input()
print('Now',m,'is going to shoot the gate!\nLeft, right, or middle?')
print(m,'kicked '+a)
l=0
i=0
while i<5:
i +=1
if a !=b:
print('Oops,',n,'saved',a)
print(l)
b=choice(direction)
a=input()
else:
print('Goal!')
l +=1
print(l)
b=choice(direction)
a=input()
print("%s's score equals"%m,l)
print(shootgame(m,n))
print(shootgame(n,m))
我的想法是直接把human和computer作为两个变量,直接交换位置就可以,但写到后面发现计分的时候无法对二者比分进行比较(都在一个函数里面),不知道有没有办法可以把两个比分分开
作者: crossin先生 时间: 2016-7-9 16:42
dashandtony 发表于 2016-7-9 08:04
m=input()
n=input()
def shootgame(m,n):
用个字典来记分:- dict = {
- 'human': 0,
- 'computer': 0
- }
复制代码
作者: l0ve1o24 时间: 2016-12-6 16:43
def guocheng1():
print '==== Round %d - You %s! ====' %( i+1 , 'kick' )
print 'Choose one side to %s:' %'shoot'
print 'left, center, right'
you = raw_input()
print 'You %s '% 'kicked' + you
com = choice(direction)
print 'Computer %s '% 'saved' + com
if you == com:
print 'Saved!'
else:
print 'Oops...'
score_com += 1
print 'Score: %d(you) - %d(com)\n' % (score_you, score_com)
def guocheng2():
print '==== Round %d - You %s! ====' %( i+1 , 'save' )
print 'Choose one side to %s:' %'save'
print 'left, center, right'
you = raw_input()
print 'You %s '% 'save' + you
com = choice(direction)
print 'Computer %s '% 'kicked' + com
if you == com:
print 'Saved!'
else:
print 'Oops...'
score_com += 1
print 'Score: %d(you) - %d(com)\n' % (score_you, score_com)
from random import choice
score_you = 0
score_com = 0
direction = ['left', 'center', 'right']
for i in range(5):
guocheng1()
guocheng2()
我想把两个def guocheng合在一块,最后导出的时候再用%修改,一直没成功,不知道这样可不可行
而且像这样分开写print '==== Round %d - You Kick! ====' % (i+1)这里运行的时候第二次还是round 1
老师你的也是这样
作者: crossin先生 时间: 2016-12-7 09:57
l0ve1o24 发表于 2016-12-6 16:43
def guocheng1():
print '==== Round %d - You %s! ====' %( i+1 , 'kick' )
print 'Choose one si ...
可以写一起,但你要做对应的判断,是射门还是守门,输出对应的文字。
每太明白你说每次是1的情况是怎样,因为我运行你这个代码是失败的。如果是重新运行,那肯定从1开始。
你现在修改后的这段代码本身是有问题的,里面 score_com 是一个全局变量但没有申明,所以会报错。后面第71课作用域专门说了这方面的内容。
作者: l0ve1o24 时间: 2016-12-7 12:57
本帖最后由 l0ve1o24 于 2016-12-7 13:02 编辑
crossin先生 发表于 2016-12-7 09:57
可以写一起,但你要做对应的判断,是射门还是守门,输出对应的文字。
每太明白你说每次是1的情况是怎样 ...
老师,我运行你的代码的时候 第二回合还是显示round1
作者: crossin先生 时间: 2016-12-7 17:23
l0ve1o24 发表于 2016-12-7 12:57
老师,我运行你的代码的时候 第二回合还是显示round1
点球大战,每一轮是踢一次再守一次,两个都是第一轮
作者: sunxin2006 时间: 2016-12-8 00:54
虽然不会写但我就想吐个槽啊,点球哪来的平手 没出胜负要一直罚下去吧
作者: crossin先生 时间: 2016-12-8 15:05
sunxin2006 发表于 2016-12-8 00:54
虽然不会写但我就想吐个槽啊,点球哪来的平手 没出胜负要一直罚下去吧
这个程序是可以扩展的啦
作者: sunxin2006 时间: 2016-12-11 21:02
crossin先生 发表于 2016-12-8 15:05
这个程序是可以扩展的啦
老师说的对,自己还在慢慢啃…太痛苦了以前学的C++全交给大学老师了
作者: 努力的小白 时间: 2017-9-23 22:14
from random import choice
score_you=0
score_com=0
direction=['左边','中间','右边']
for i in range(5):
print('====开始你的回合====')
print('选择一波射门')
print('左边','中间','右边')
you=str(input())
print('你射向了'+you)
com=choice(direction)
print('电脑扑向了'+com)
if you!=com:
print('球进了!')
score_you+=1
else:
print('糟糕..')
print('得分:%s(you),%s(com)'%(score_you,score_com))
print('====开始你的回合====')
print('选择一边射门')
print('左边','中间','右边')
you=str(input())
print('你射向了'+you)
com=choice(direction)
print('电脑扑向了'+com)
if you==com:
print('电脑扑到了球')
else:
print('糟糕...')
score_com+=1
print('得分:%s(you),%s(com)'%(score_you,score_com)
这个会有一个逻辑错误但我不知道该怎么改,而且有时候计分会出现问题,我是3.5版本的
求老师看看怎么改
-
QQ截图20170923221437.png
(14.15 KB, 下载次数: 463)
作者: crossin先生 时间: 2017-9-23 23:44
努力的小白 发表于 2017-9-23 22:14
from random import choice
score_you=0
什么逻辑错误?从你的截图没看出来
作者: 努力的小白 时间: 2017-9-24 11:22
向左边射门,电脑扑向中间,显示还是被扑到了
作者: crossin先生 时间: 2017-9-24 12:20
努力的小白 发表于 2017-9-24 11:22
向左边射门,电脑扑向中间,显示还是被扑到了
那把文件编码改成 gbk
#coding:gbk
作者: lubvi 时间: 2017-10-25 15:10
- from random import choice
- direction = ['left', 'center', 'right']
- print('欢迎来到点球大赛')
- player=0 #分数初始化
- computer=0
- for i in range(5): #5次循环等价于range(0, 5);
- #你踢
- print("Round%s---你踢,电脑守" % (i + 1))
- you = input('请选择方向:left, center, right\n')
- print('你踢向 ' + you)
- com = choice(direction)
- print('Computer扑向%s'%com)
- if you != com:
- print('Goal!你的得分+1')
- player = player + 1
- else:
- print('Oops..很可惜,电脑得分+1.')
- computer = computer + 1
- print('Score%d(you) - Score%d(cp)' % (player, computer))
- #电脑踢
- #print('欢迎来到点球大赛')
- print("Round%s---你守,电脑踢" % (i + 1))
- you = input('请选择方向:left, center, right\n')
- print('你扑向' + you)
- com = choice(direction)
- print('电脑踢向' + com)
- if you == com:
- print('Goal!你的得分+1')
- player = player + 1
- else:
- print('Oops..可惜,电脑+1.')
- computer = computer + 1
- print('Score:%d(you) - Score:%d(cp)' % (player, computer))
复制代码
作者: 司南 时间: 2018-4-7 11:29
从昨天琢磨到今天,按照各位大神函数的方法,写了下面这个,锻炼了自己函数这部分吧,话说,,你们太狠了,佩服- #football_game.py
- #司南 2018.04.07
- #方向设定
- direction=['left','middle','right']
- #扑救方
- def keeper(name='computer'):
- import random
- dic=random.choice(direction)
- if name=='computer':
- print('天哪,快看,守门员扑向了%s方向' %dic)
- else:
- print('天哪,快看,守门员%s扑向了%s方向' %(name,dic))
- return dic
- #射门方
- def shoot(man):
- dic=input('请输入射球方向:left/middle/right')
- print('快看,%s能否射进呢?' %man)
- return dic
- #比赛规则
- def fight(keeperdic,shootdic):
- if keeperdic==shootdic:
- print('omg,the goalkeeper win!')
- return True
- else:
- print('天哪,球进了!!')
- return False
- #开始比赛
- score_keeper=0
- score_shoot=0
- man=input('Hei,man please tell us your name:')
- round=eval(input('how many round do you do'))
- for i in range(round):
- print('====Everybody the %dth round begin!===='%(i+1))
- shootdic=shoot(man)
- keeperdic=keeper()
- res=fight(keeper,shootdic)
- if res:
- score_keeper=score_keeper+1
- else:
- score_shoot=score_shoot+1
- #判断总分胜负:
- if score_keeper>score_shoot:
- print('伟大的守门员赢啦!!')
- elif score_keeper<score_shoot:
- print('%s 你赢啦!'%man)
- else:
- print('平手!')
复制代码
作者: 司南 时间: 2018-4-7 11:35
司南 发表于 2018-4-7 11:29
从昨天琢磨到今天,按照各位大神函数的方法,写了下面这个,锻炼了自己函数这部分吧,话说,,你们太狠了, ...
暂时的疑问是,写函数主要的目的是:用他的返回值,并提高代码的可重用性
欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) |
Powered by Discuz! X2.5 |