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

    xiaoxiao2025-07-13  11

    #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()

     

    最新回复(0)