基础篇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