基础篇08-python基本数据类型习题解答

#coding=utf-8
#@description:周末作业

#一.已经字符串 s = "i,am,lilei",请用两种办法取出之间的“am”字符。
print '第一题-----------------------------'

#方法1
s = "i,am,lilei"
print s[2:4]
##方法2
c = s.split(',')[1]   #split方法返回的是一个列表
print c

print '第二题-----------------------------'

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

#答案:可以用字符串的replace方法.
ainfo = 'i love php'
replycontent = ainfo.replace('php','python')
print replycontent

print '第三题-----------------------------'

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

##答案:结果是fasle,==判断对象的数据类型,尽管看起来数值是一样的,但是他们的类型不同,一个是字符串,一个是数字


print '第四题-----------------------------'

##四.已知一个文件 test.txt,内容如下:
2012来了。
2012不是世界末日。
2012欢乐多。

##1.请输出内容

#注意本文中的decode和encode请自动忽略,python3与python2不同。
f = open('test.txt','r')
content = f.read()
dcontent = content.decode('utf-8')##转换为unicode
print content

##2.请计算该文本的原始长度.
print len(dcontent)

##3.请去除该文本的换行
print content.replace('\n','')

##4.请替换其中的字符"2012"为"2013"。
print content.replace('2012','2013')

##5.请取出最中间的长度为5的子串。
print dcontent[len(dcontent)/2:len(dcontent)/2+5].encode('utf-8')
##6.请取出最后2个字符。
print 'aaaa--------'
print dcontent[-2:].encode('utf-8')
print 'bbbb--------'
##7.请从字符串的最初开始,截断该字符串,使其长度为11.
print dcontent[:11].encode('utf-8')

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

rinfo = content.replace('2012','2013')
f = open('test1.py','w')
f.write(rinfo)
f.close()##关闭文件

print '第五题-----------------------------'

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

引用机制有两点,一是引用的是ID,二是引用计数的概念
注意python中的引用计数是从3开始

import sys

cinfo = '1234'
print id(cinfo)
print sys.getrefcount('1234')   

binfo = '1234'
print id(binfo)
print sys.getrefcount('1234')

print '第六题-----------------------------'

##六.已知如下代码

a = "中文编程"  ##引用计数开始是3,然后a变量引用了字符串对象3 + 1 =4
print "a:%s" % id(a)

b = a
print "b:%s" % id(b)##4 + 1 = 5

c = a
print "c:%s" % id(c)## 5 + 1 = 6

print sys.getrefcount('中文编程')##输出结果是6
print 'ssss'
a = "python编程"
print "a:%s" % id(a)###6-1 = 5##a引用另外一个字符串对象

b = u'%s' % a.decode('utf-8')
print "b:%s" % id(b)###5-1 = 4

print sys.getrefcount('中文编程')##输出结果是4

d = "中文编程"
print "d:%s" % id(d)###新建一个变量,引用字符串 4 + 1 = 5

e = a
print "e:%s" % id(e)

c = b
print "c:%s" % id(c)### c引用另外一个字符串对象,5 - 1 = 4

print sys.getrefcount('中文编程')


b2 = a.replace("中","中")
print "b2:%s" % id(b2)

print 'result-----------------'
print sys.getrefcount('中文编程')
print sys.getrefcount('python编程')


print '第七题-----------------------------'
##七.已知如下变量

a = "字符串拼接1"
b = "字符串拼接2"
#
##请用四种以上的方式将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


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

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

##.请计算出新拼接出来的字符串长度,并取出其中的第七个字符。
lennum = len(c.decode('utf-8'))
print c.decode('utf-8')[6].encode('utf-8')

print '第八题-----------------------------'
##八.请阅读string模块,并且,根据string模块的内置方法输出如下几题的答案
import string

#print help(string)
#注意:string模块与python内置的str类不同。此处为string模块,先import string,再help(string);str类直接在python中help(string)。

##1.包含0-9的数字。
print string.digits

##2.所有小写字母
print string.lowercase

##3.所有标点符号
print string.punctuation

##4:所有大写字母和小写字母。
print string.ascii_lowercase##小写字母
print string.ascii_uppercase##大写字母
print '\n'
##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)
print strinfo

 

print '第九题-----------------------------'
##九.已知字符串

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
print a[7:10]
print a[-5:]

##方法2
cinfo = a.split(',')
print cinfo[3]
print cinfo[-1]

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

print a.find('i')##若不存在则返回-1
print a.index('i')##若不存在则报错

##4.请找出"china"中的"i"字符在字符串a中的位置。
print a.find('i',a.find('china'))  #以china的起始点为起点,再查找i的位置
print a.rfind('i')

##5.请计算该字符串一共有几个逗号
print a.count(',')

print '第十题-----------------------------'
##十.请将模块string的帮助文档保存为一个文件。

import sys
import string

f = open('test.log','w')
sys.stdout = f  #sys.stdout属性将标准的输出流绑定到文件的写入方法里。
help(string)    #这样就能将标准的输出流help(string)输出的字符串写入到文件里。不是特别懂,帮助也没看懂
f.close()

 

以下与上面内容相同

#coding=utf-8
#@description:周末作业

#一.已经字符串 s = "i,am,lilei",请用两种办法取出之间的“am”字符。
print '第一题-----------------------------'

#方法1
s = "i,am,lilei"
print s[2:4]
##方法2
c = s.split(',')[1]   #split方法返回的是一个列表
print c

print '第二题-----------------------------'

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

#答案:可以用字符串的replace方法.
ainfo = 'i love php'
replycontent = ainfo.replace('php','python')
print replycontent

print '第三题-----------------------------'

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

##答案:结果是fasle,==判断对象的数据类型,尽管看起来数值是一样的,但是他们的类型不同,一个是字符串,一个是数字


print '第四题-----------------------------'

##四.已知一个文件 test.txt,内容如下:
2012来了。
2012不是世界末日。
2012欢乐多。

##1.请输出内容
f = open('test.txt','r')
content = f.read()
dcontent = content.decode('utf-8')##转换为unicode
print content

##2.请计算该文本的原始长度.
print len(dcontent)

##3.请去除该文本的换行
print content.replace('\n','')

##4.请替换其中的字符"2012"为"2013"。
print content.replace('2012','2013')

##5.请取出最中间的长度为5的子串。
print dcontent[len(dcontent)/2:len(dcontent)/2+5].encode('utf-8')
##6.请取出最后2个字符。
print 'aaaa--------'
print dcontent[-2:].encode('utf-8')
print 'bbbb--------'
##7.请从字符串的最初开始,截断该字符串,使其长度为11.
print dcontent[:11].encode('utf-8')

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

rinfo = content.replace('2012','2013')
f = open('test1.py','w')
f.write(rinfo)
f.close()##关闭文件

print '第五题-----------------------------'

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

引用机制有两点,一是引用的是ID,二是引用计数的概念
注意python中的引用计数是从3开始

import sys

cinfo = '1234'
print id(cinfo)
print sys.getrefcount('1234')   

binfo = '1234'
print id(binfo)
print sys.getrefcount('1234')

print '第六题-----------------------------'

##六.已知如下代码

a = "中文编程"  ##引用计数开始是3,然后a变量引用了字符串对象3 + 1 =4
print "a:%s" % id(a)

b = a
print "b:%s" % id(b)##4 + 1 = 5

c = a
print "c:%s" % id(c)## 5 + 1 = 6

print sys.getrefcount('中文编程')##输出结果是6
print 'ssss'
a = "python编程"
print "a:%s" % id(a)###6-1 = 5##a引用另外一个字符串对象

b = u'%s' % a.decode('utf-8')
print "b:%s" % id(b)###5-1 = 4

print sys.getrefcount('中文编程')##输出结果是4

d = "中文编程"
print "d:%s" % id(d)###新建一个变量,引用字符串 4 + 1 = 5

e = a
print "e:%s" % id(e)

c = b
print "c:%s" % id(c)### c引用另外一个字符串对象,5 - 1 = 4

print sys.getrefcount('中文编程')


b2 = a.replace("中","中")
print "b2:%s" % id(b2)

print 'result-----------------'
print sys.getrefcount('中文编程')
print sys.getrefcount('python编程')


print '第七题-----------------------------'
##七.已知如下变量

a = "字符串拼接1"
b = "字符串拼接2"
#
##请用四种以上的方式将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


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

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

##.请计算出新拼接出来的字符串长度,并取出其中的第七个字符。
lennum = len(c.decode('utf-8'))
print c.decode('utf-8')[6].encode('utf-8')

print '第八题-----------------------------'
##八.请阅读string模块,并且,根据string模块的内置方法输出如下几题的答案
import string

#print help(string)
#注意:string模块与python内置的str类不同。此处为string模块,先import string,再help(string);str类直接在python中help(string)。

##1.包含0-9的数字。
print string.digits

##2.所有小写字母
print string.lowercase

##3.所有标点符号
print string.punctuation

##4:所有大写字母和小写字母。
print string.ascii_lowercase##小写字母
print string.ascii_uppercase##大写字母
print '\n'
##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)
print strinfo



print '第九题-----------------------------'
##九.已知字符串

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
print a[7:10]
print a[-5:]

##方法2
cinfo = a.split(',')
print cinfo[3]
print cinfo[-1]

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

print a.find('i')##若不存在则返回-1
print a.index('i')##若不存在则报错

##4.请找出"china"中的"i"字符在字符串a中的位置。
print a.find('i',a.find('china'))  #以china的起始点为起点,再查找i的位置
print a.rfind('i')

##5.请计算该字符串一共有几个逗号
print a.count(',')

print '第十题-----------------------------'
##十.请将模块string的帮助文档保存为一个文件。

import sys
import string

f = open('test.log','w')
sys.stdout = f  #sys.stdout属性将标准的输出流绑定到文件的写入方法里。
help(string)    #这样就能将标准的输出流help(string)输出的字符串写入到文件里。不是特别懂,帮助也没看懂
f.close()

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值