老王python之基本数据类型习题

老王python之基本数据类型习题

1.1 第一节习题

1 :
info = ‘abc’
info[2] = ‘d’
结果是什么,为什么会报错呢?**

结果为下图所示:
这里写图片描述

因为字符串是不可以进行修改的,第二条试图将info[2]修改为’d’,所以会有报错

2 如果要把上面的字符串info里面的c替换成d,要怎么操作呢?

>>> info = 'abc'
>>> a = list(info)
>>> a[2] = 'd'
>>> ''.join(a)
'abd'

3、下面2个变量
**a = ‘1’
b = 2
print a + b 的结果是什么,为什么会出现这个结果,如果希望结果是3,要怎么操作?**

结果为下图所示:
这里写图片描述
因为a的类型为str,而b的类型为int,两个不同类型的不能直接相加;如果希望结果是3的话,可以输入print int(a) + b

1.2 第二节习题

**1 字符串:
a = ‘abcd’
用2个方法取出字母d**

>>> a = 'abcd'
>>> a[3]
'd'
>>> a[-1]
'd'
>>> a[3:4]
'd'

**2:
a = ‘jay’
b = ‘python’
用字符串拼接的方法输出:
my name is jay,i love python.**

>>> a = 'jay'
>>> b = 'python'
>>> print "my name is %s , i love %s" % (a,b)
my name is jay , i love python

1.3 第三节习题

**1:
a = ‘pyer’
b = ‘apple’
用字典和format方法实现:my name is pyer, i love apple.**
这里写图片描述

2:打开文件info.txt,并且写入500这个数字。

>>> a = open('info.txt','w')
>>> a.write('500')
>>> a.close()
>>> a = open('info.txt','r')
>>> a.read(20)
'500'

1.4 基本数据类型总习题

一、已经字符串 s = “i,am,lilei”,请用两种办法取出之间的“am”字符。

am'
>>> s = "i,am,lilei"
>>> s[2:4]
'am'
>>> s.split(',')[1]
'am'

二、在python中,如何修改字符串?
可以使用字符串的replace方法,格式为string.replace(old,new[,count])

三、bool(“2012” == 2012) 的结果是什么。
结果是False,因为一个是字符串,一个是int整型,两个并不相等,所以它们比较之后的bool值为False

**四、已知一个文件 test.txt,内容如下:
____________
2012来了。
2012不是世界末日。
2012欢乐多。
_____________
1.请输出其内容。
2.请计算该文本的原始长度。
3.请去除该文本的换行。
4.请替换其中的字符”2012”为”2013”。
5.请取出最中间的长度为5的子串。
6.请取出最后2个字符。
7.请从字符串的最初开始,截断该字符串,使其长度为11.
8.请将{4}中的字符串保存为test1.py文本.**

1>>> f = open('test.txt','r')
>>> a = f.read()
>>> print a.decode('utf-8')
____________   
2012来了。  
2012不是世界末日。  
2012欢乐多。
_____________


2>>> d = a.decode('utf-8')
>>> print len(d)
63

3>>> print a.replace('\n','')
____________   2012来了。  2012不是世界末日。  2012欢乐多。_____________

4>>> print a.replace('2012','2013')
____________   
2013来了。  
2013不是世界末日。  
2013欢乐多。
_____________

5>>> print d[len(d)/2:len(d)/2 + 5]
是世界末日

6>>> print d[-2:]
_

7>>> print d[:11]
___________

8>>> b = a.replace('2012','2013')
>>> t = open('test1.txt','w')
>>> t.write(b)

**五、已知如下代码
a = “中文编程”
b = a
c = a
a = “python编程”
b = a.decode(‘utf-8’)
d = “中文编程”
e = a
c = b
b2 = a.replace(“中”,”中”)
1.请给出str对象”中文编程”的引用计数
2.请给出str对象”python编程”的引用计数**

在python中,对象的引用计数是从3开始,而不是从1开始
print sys.getrefcount("中文编程")
print sys.getrefcount("python编程")
最终的结果如下截图:
这里写图片描述

**六、已知如下变量
a = “字符串拼接1”
b = “字符串拼接2”
1.请用四种以上的方式将a与b拼接成字符串c。并指出每一种方法的优劣。
2.请将a与b拼接成字符串c,并用逗号分隔。
3.请计算出新拼接出来的字符串长度,并取出其中的第七个字符。**

  • 1、
    这里写图片描述

  • 2、
    这里写图片描述

  • 3、
    这里写图片描述

**七、请阅读string模块,并且,根据string模块的内置方法输出如下几题的答案。
1.包含0-9的数字。
2.所有小写字母。
3.所有标点符号。
4.所有大写字母和小写字母。
5.请使用你认为最好的办法将{1}-{4}点中的字符串拼接成一个字符串。**

>>> import string
>>> print string.digits
0123456789
>>> print string.lowercase
abcdefghijklmnopqrstuvwxyz
>>> print string.punctuation
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
>>> print string.letters
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
>>> d = ''.join([string.digits,string.lowercase,string.punctuation,string.letters]) 
>>> print d
0123456789abcdefghijklmnopqrstuvwxyz!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

##用format和占位符等方法也可以实现

**八、已知字符串
a = “i,am,a,boy,in,china”
1.假设boy和china是随时可能变换的,例boy可能改成girl或者gay,而china可能会改成别的国家,你会如何将上面的字符串,变为可配置的。
2.请使用2种办法取出其间的字符”boy”和”china”。
3.请找出第一个”i”出现的位置。
4.请找出”china”中的”i”字符在字符串a中的位置。
5.请计算该字符串一共有几个逗号。**

1>>> a = "i,am,a,boy,in,china"
>>> b = "i,am,a,{sex},in,{country}" .format(sex='girl',country='England')
>>> print b
i,am,a,girl,in,England

2>>> sex = a.split(',')[3]
>>> sex
'boy'
>>> country = a.split(',')[-1]
>>> country
'china'
>>> print a[7:10]
boy
>>> print a[-5:]
china

3>>> print a.find('i')
0

4>>> print a.find('i',a.find('china'))
16
>>> print a.rfind('i')  ##因为这个字符串中china中的i是最后一个i,rfind从右向左查找
16

5>>> print a.count(',')
5

九、请将模块string的帮助文档保存为一个文件。
这里写图片描述

sys.stdout=f表示将标准的输出流放入到f里面去,help(string)为此时会有的标准输出流

猜你喜欢

转载自blog.csdn.net/lcl_xiaowugui/article/details/80740469
今日推荐