切换风格

Wizard Sky California Sunset glow Black Cloud Beige Dragon Lavender NewYear City Snow Flowers London
收藏本站XSS平台字符串转换jsfuck
python基础-第一周习题以及讲解[复制链接]
发表于 2012-12-27 00:04:27 | 显示全部楼层 |!read_mode!
  1. #coding=utf-8
  2. #@description:周末作业

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

  5. #方法1
  6. s = "i,am,lilei"
  7. print s[2:4]
  8. ##方法2
  9. c = s.split(',')[1]
  10. print c

  11. print '第二题-----------------------------'

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

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

  17. print '第三题-----------------------------'

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

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


  20. print '第四题-----------------------------'

  21. ##四.已知一个文件 test.txt,内容如下:

  22. f = open('test.txt','r')
  23. content = f.read()
  24. dcontent = content.decode('utf-8')##转换为unicode

  25. ##1.请输出内容
  26. print content

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

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

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

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

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

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

  46. print '第五题-----------------------------'

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

  48. import sys

  49. cinfo = '1234'
  50. print id(cinfo)
  51. print sys.getrefcount('1234')   

  52. binfo = '1234'
  53. print id(binfo)
  54. print sys.getrefcount('1234')

  55. print '第六题-----------------------------'

  56. ##六.已知如下代码

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

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

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

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

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

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

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

  72. e = a
  73. print "e:%s" % id(e)

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

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


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

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


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

  84. a = "字符串拼接1"
  85. b = "字符串拼接2"
  86. #
  87. ##请用四种以上的方式将a与b拼接成字符串c。并指出每一种方法的优劣

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

  89. c = a + b

  90. ##方法2:

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

  92. ###方法3:
  93. print 'format'
  94. c = "{a}{b}" .format (a=a,b=b)


  95. ##方法4:

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

  97. print c


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

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

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

  103. print '第八题-----------------------------'
  104. ##八.请阅读string模块,并且,根据string模块的内置方法输出如下几题的答案
  105. import string
  106. ##1.包含0-9的数字。

  107. #print help(string)
  108. print string.digits

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

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

  113. ##4:所有大写字母和小写字母。
  114. print string.ascii_lowercase##小写字母
  115. print string.ascii_uppercase##大写字母
  116. print '\n'
  117. ##5:请使用你认为最好的办法将{1}-{4}点中的字符串拼接成一个字符串。
  118. strinfo = []
  119. strinfo.append(string.digits)
  120. strinfo.append(string.lowercase)
  121. strinfo.append(string.punctuation)
  122. strinfo.append(string.ascii_lowercase)
  123. strinfo.append(string.ascii_uppercase)
  124. print "".join(strinfo)
  125. print '\n'
  126. strinfo = "%s%s%s%s%s" % (string.digits,string.lowercase,string.punctuation,string.ascii_lowercase,string.ascii_uppercase)
  127. print strinfo



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

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

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

  132. ac = "i,am,a,%(sex)s,in,%(country)s"  % {'sex':'girl','country':'china'}
  133. bc = "i,am,a,{sex},in,{country}" .format (sex='girl',country='india')
  134. print ac
  135. print bc

  136. ##2.请使用2种办法取出其间的字符"boy"和"china"。

  137. ##方法1
  138. print a[7:10]
  139. print a[-5:]

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

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

  145. print a.find('i')##-1
  146. print a.index('i')##报错

  147. ##4.请找出"china"中的"i"字符在字符串a中的位置。
  148. print a.find('i',a.find('china'))
  149. print a.rfind('i')

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

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

  154. import sys
  155. import string

  156. f = open('test.log','w')
  157. sys.stdout = f
  158. help(string)
  159. f.close()
复制代码



代码区

GMT+8, 2020-7-5 22:43

Powered by Discuz! X2

© 2001-2018 Comsenz Inc.

回顶部