设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【Python 第27课】 list切片

[复制链接]

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

21#
发表于 2016-1-2 23:53:45 |只看该作者
catherinemic 发表于 2016-1-2 09:56
Ok,谢谢crossin先生,元旦快乐!

新年快乐
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

98

积分

注册会员

Rank: 2

22#
发表于 2016-2-6 18:39:17 |只看该作者
有一个bug,如果在进球的时候同时输入左,中,右方向,电脑无论防守哪个方向都会输……
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

23#
发表于 2016-2-7 15:43:45 |只看该作者
谢冰 发表于 2016-2-6 18:39
有一个bug,如果在进球的时候同时输入左,中,右方向,电脑无论防守哪个方向都会输…… ...

是。你只要不按规则输入,就能赢。所以可以额外再加上限制
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

20

积分

新手上路

Rank: 1

24#
发表于 2016-5-21 15:42:56 |只看该作者
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.
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

25#
发表于 2016-5-21 22:25:09 |只看该作者
FPOS 发表于 2016-5-21 15:42
from random import choice
print 'choose one side to shoot.'
print 'left,center,right'

两个print可以的
或者字符串里加上换行符 \n
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

22

积分

新手上路

Rank: 1

26#
发表于 2016-7-9 08:04:10 |只看该作者
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作为两个变量,直接交换位置就可以,但写到后面发现计分的时候无法对二者比分进行比较(都在一个函数里面),不知道有没有办法可以把两个比分分开
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

27#
发表于 2016-7-9 16:42:10 |只看该作者
dashandtony 发表于 2016-7-9 08:04
m=input()
n=input()
def shootgame(m,n):

用个字典来记分:
  1. dict = {
  2.   'human': 0,
  3.   'computer': 0
  4. }
复制代码
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

96

积分

注册会员

Rank: 2

28#
发表于 2016-12-6 16:43:28 |只看该作者
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
老师你的也是这样
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

29#
发表于 2016-12-7 09:57: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课作用域专门说了这方面的内容。

#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

96

积分

注册会员

Rank: 2

30#
发表于 2016-12-7 12:57:08 |只看该作者
本帖最后由 l0ve1o24 于 2016-12-7 13:02 编辑
crossin先生 发表于 2016-12-7 09:57
可以写一起,但你要做对应的判断,是射门还是守门,输出对应的文字。

每太明白你说每次是1的情况是怎样 ...
老师,我运行你的代码的时候 第二回合还是显示round1
无标1题.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-4-19 20:01 , Processed in 0.027070 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部