基础篇8-基本数据类型习题讲解

一.已经知道字符串s = "i,am,lilei",请用两种方法取出之前的"am"字符。

第一种方法:

s = "i,am,lilei"

s.find("am")

s[2:4]

第二种方法:

s = "i,am,lilei"

s = s.split(",")

s[1]

二.在python中,如何修改字符串

在python中是没有办法直接对字符串进行修改的,只能通过替换,然后在重新赋值给原变量。

三.bool("2012" == 2012)的结果是什么。

False

“2012”看起来是数字类型,但是type(“2012”)和type(2012)一个类型是str一个是int,所以返回值是False

四.已经知道一个test.txt,内容如下:

____________

2012来了。

2012不是世界末日。

2012欢乐多。

_____________

1.请输出其内容

windows下

fname =open("c:\\test.txt","r")

fread =fname.read()

fname.close()

print fread

2.请计算出该文本的原始长度。

windows下

len(fread.decode("gbk"))

3.请去除所有的文本的换行

windows下

print  fread.replace("\n","")

4.请替换其中的字符“2012”为“2013”。

windows下

print  fread.replace("2012","2013")

5.请取出最中间的长度为5的字符串。

print fread[len(fread)/2-1:len(fread)/2+5].encode(“utf-8”)

6.请取出最后2个字符

printfread[-2:].encode(“utf-8”)

7. 请从字符串的最初开始,截断该字符串,使其长度为11

printfread[:11]

8. 请将{4}中的字符串保存为test1.py文本

fread1 =fread.replace("2012","2013")

fname1 =open("c:\\test1.py","w")

fname1.write(fread1)

fname1.close

五.请用代码的形式描述python的引用机制。

import sys

cinfo ='1234'

printid(cinfo)

printsys.getrefcount('1234')  

binfo ='1234'

printid(binfo)

printsys.getrefcount('1234')

六.已知如下代码

________

a = "中文编程"

b = a

c = a

a = "python编程"

b = u'%s' %a.decode('gbk')

d = "中文编程"

e = a

c = b

b2 = a.replace("中","中")

________

1.请给出str对象"中文编程"的引用计数

2.请给出str对象"python编程"的引用计数

七.已知如下变量

________

a = "字符串拼接1"

b = "字符串拼接2"

________

1.请用四种以上的方式将a与b拼接成字符串c。并指出每一种方法的优劣。

##方法1:在做大量的字符串对象拼接的时候不推荐

c = a + b

##方法2:

c ="%s%s" % (a,b)

###方法3:

print'format'

c ="{a}{b}" .format (a=a,b=b)

##方法4:

c ="".join([a,b])

print c

2.请将a 与 b 拼接成字符串才c,并用逗号分隔。

c  = ",".join([a,b])

3.请计算出新拼接出来的字符串的长度,并且取出其中第七个字符。

c = c.decode("gbk")

c[6]

八.请阅读string模块,并且,根据string模块的内置方法输出如下几题的答案。

1.包含0-9的数字。

print string.digits

2.所有小写字母。

print string.lowercase

3.所有标点符号。

print string.punctuation

4.所有大写字母和小写字母。

print string.letters

5.请使用你认为最好的办法将{1}-{4}点中的字符串拼接成一个字符串。

strinfo =[]

strinfo.append(string.digits)

strinfo.append(string.lowercase)

strinfo.append(string.punctuation)

strinfo.append(string.ascii_lowercase)

strinfo.append(string.ascii_uppercase)

print"".join(strinfo)

print '\n'

strinfo ="%s%s%s%s%s" %(string.digits,string.lowercase,string.punctuation,string.ascii_lowercase,string.ascii_uppercase)

printstrinfo

九.已知字符串

________

a = "i,am,a,boy,in,china"

________

1.假设boy和china是随时可能变换的,例boy可能改成girl或者gay,而china可能会改成别的国家,你会如何将上面的字符串,变为可配置的。

ac ="i,am,a,%(sex)s,in,%(country)s" % {'sex':'girl','country':'china'}

bc ="i,am,a,{sex},in,{country}" .format (sex='girl',country='india')

print ac

print bc

2.请使用2种办法取出字符"boy"和"china"

方法1:

a.find("boy")

a.find("china")

print a[7:10]

print a[-5:]

方法2:

a = split(",")

a[3]

a[-1]

3.请找出第一个"i"出现的位置。

printa.find('i')##-1

printa.index('i')##报错

4.请找出"china"中的"i"字符在字符串a中的位置。

print a.find('i',a.find('china'))

printa.rfind('i')

5.请计算该字符串一共有几个逗号。

a.count(",")

十.请将模块string的帮助文档保存为一个文件。

脚本

#coding=utf-8

import sys

import string

fname = open("c:\\help_str.txt","w")

sys.stdout = fname

help(string)

fname.close