专栏首页Crossin的编程教室【Python 第28课】 字符串的分割

【Python 第28课】 字符串的分割

字符串和list之间有很多不得不说的事。比如有同学想要用python去自动抓取某个网页上的下载链接,那就需要对网页的代码进行处理。处理的过程中,免不了要在字符串和list之间进行很多操作。

我们先从最基本的开始。假设你现在拿到了一个英语句子,需要把这个句子中的每一个单词拿出来单独处理。

sentence = 'I am an Englist sentence'

这时就需要对字符串进行分割。

sentence.split()

split()会把字符串按照其中的空格进行分割,分割后的每一段都是一个新的字符串,最终返回这些字符串组成一个list。于是得到

['I', 'am', 'an', 'Englist', 'sentence']

原来字符串中的空格不再存在。

除了空格外,split()同时也会按照换行符\n,制表符\t进行分割。所以应该说,split默认是按照空白字符进行分割。

之所以说默认,是因为split还可以指定分割的符号。比如你有一个很长的字符串

section = 'Hi. I am the one. Bye.'

通过指定分割符号为'.',可以把每句话分开

section.split('.')

得到

['Hi', ' I am the one', ' Bye', '']

这时候,'.'作为分割符被去掉了,而空格仍然保留在它的位置上。

注意最后那个空字符串。每个'.'都会被作为分割符,即使它的后面没有其他字符,也会有一个空串被分割出来。例如

'aaa'.split('a')

将会得到['', '', '', ''],由四个空串组成的list。

既然有把字符串分割成list,那也相应就有把list连接成字符串,这个明天说。

#==== 点球小游戏 ====#

在昨天代码的基础上,我们加上胜负判断,如果5轮结束之后是平分,就继续踢。

所以我们把一轮的过程单独拿出来作为一个函数kick,在5次循环之后再加上一个while循环。

另外,这里把之前的score_you和score_com合并成了一个score数组。这里的原因是,要让kick函数里用到外部定义的变量,需要使用全局变量的概念。暂时想避免说这个,而用list不存在这个问题。

from random import choice

score = [0, 0]

direction = ['left', 'center', 'right']

def kick():

print '==== You Kick! ===='

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[0] += 1

else:

print 'Oops...'

print 'Score: %d(you) - %d(com)\n' % (score[0], score[1])

print '==== You Save! ===='

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[1] += 1

print 'Score: %d(you) - %d(com)\n' % (score[0], score[1])

for i in range(1):

print '==== Round %d ====' % (i+1)

kick()

while(score[0] == score[1]):

i += 1

print '==== Round %d ====' % (i+1)

kick()

if score[0] > score[1]:

print 'You Win!'

else:

print 'You Lose.'

面向零基础初学者的编程课

每天5分钟,轻松学编程

回复『 p 』查看课程目录

回复『 t 』查看习题列表

本文分享自微信公众号 - Crossin的编程教室(crossincode)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2013-07-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【Python 第27课】 list切片

    list有两类常用操作:索引(index)和切片(slice)。 昨天我们说的用[]加序号访问的方法就是索引操作。 除了指定位置进行索引外,list还可以处理负...

    Crossin先生
  • 【Python 第2课】print

    今天早上醒来,发现咱们的同学人数一夜之间多了50,后来又陆陆续续来了很多,于是我坚持下去的信心又增加了不少。在这里感谢连客官微的宣传,表示今晚将用加班写代码来表...

    Crossin先生
  • 点球小游戏 2

    再次说明:一个编程问题会有很多种解法,我给的只是其中一种,而且未必是最好的一种。所以,你尽可去想自己的方法,然后实现它。 我们的点球游戏已经快完成了,现在要做的...

    Crossin先生
  • 马哥Python爱好者的学习笔记——基础语法习题总结

    用户1139739
  • 【Python 第27课】 list切片

    list有两类常用操作:索引(index)和切片(slice)。 昨天我们说的用[]加序号访问的方法就是索引操作。 除了指定位置进行索引外,list还可以处理负...

    Crossin先生
  • Python入门之面向对象编程(四)Python描述器详解

    本文分为如下部分 引言——用@property批量使用的例子来引出描述器的功能 描述器的基本理论及简单实例 描述器的调用机制 描述器的细节 实例方法、静态方法和...

    Jetpropelledsnake21
  • Python判断对象是否是functio

    有时候用python就有这么一种感悟,各种钩子函数就是通过内置的“__”属性实现,python学得好不好,就是对“__”属性理解得透彻不透彻。

    py3study
  • 数据类型及字符编码 (需要重新修改)

    1.数据类型:   数字(整型,长整型,浮点型,复数)   字符串:在介绍字符编码时介绍字节bytes类型   列表   元祖   字典   集合

    py3study
  • Numpy 01

    py3study
  • Python 基础 一

    这里用的是 python 2.6 源于:http://wiki.jikexueyuan.com/project/learn-python-hard-way/

    用户1148525

扫码关注云+社区

领取腾讯云代金券