Python基本数据类型练习题

一.已知字符串 s = "my,name,is,zhangsan",请用两种办法取出之间的“name”字符。

 
 
s = "my,name,is,zhangsan"
print (s[3:7])    #方法一
c = s.split(',')[1]   #方法二
print (c)

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

答案:可以用字符串的replace方法.

a = 'my name is lisi'
a = a.replace('lisi','zhangsan')
print(a)
三.bool("1" ==1) 的结果是什么。

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

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

___________

(2017)很爱很爱你
可你怎么就不明白呢?

_____________

读取文件

f = open('test.txt','r')
content = f.read()

1.请输出其内容。

print(content)

2.请计算该文本的原始长度。

content = content.encode('utf-8')
print(len(content))

3.请去除该文本的换行。

print(content.replace('\n',''))

4.请替换其中的字符"(2017)"为"(2018)"。

print(content.replace('(2017)','(2018)'))

5.请取出最后2个字符。

print( content[-2:])

6.请从字符串的最初开始,截断该字符串,使其长度为11.

print(content[:11])

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

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

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

import sys
a = '1234'
print(id(a))
print(sys.getrefcount('1234'))

六.已知如下变量

________
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 = '%s,%s' % (a,b)

七.已知字符串

________
a = "i,am,a,boy,in,china"
________

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

a = "i,am,a,boy,in,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"。

a = "i,am,a,boy,in,china"
##方法1
print (a[7:10])
print (a[-5:])
##方法2
cinfo = a.split(',')
print (cinfo[3])
print (cinfo[-1])

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

a = "i,am,a,boy,in,china"
print (a.find('i'))
print (a.index('i'))

4.请找出"china"中的"i"字符在字符串a中的位置。

a = "i,am,a,boy,in,china"
print (a.find('i',a.find('china')))
print (a.rfind('i'))
5.请计算该字符串一共有几个逗号。
a = "i,am,a,boy,in,china"
print (a.count(','))

八.请将模块string的帮助文档保存为一个文件。

import sys
import string

f = open('test.log','w')
sys.stdout = f
help(string)
f.close()

九.用列表推导式生成100内的大于20的偶数

b = [x for x in range(21, 101) if x%2==0]
print(b)
十. 有下面2个列表:
a = [1,99,33,44,55,22]
输出结果:

1:[1,2,99,33,44,55,22,(11,33,54)]

a = [1,99,33,44,55,22]

b = (11, 33, 54)

a.insert(1, 2)

a.append(b)
print a
2: [1,2,99,33,101,44,55,22]
a = [1,99,33,44,55,22]

a.insert(1, 2)

a.insert(4, 101)

print a
十一.

利用列表推导完成下面习题:

1 输出结果:[1 love python,2 love python,3 love python,…. 10 love python]

#方法一:
['%s love python' %s for s in range(1, 11)]
#方法二:
['{} love python'.format(i) for i in range(1, 11)]

2 输出结果:[(0,0),(0,2),(2,0),(2,2)]

[(x, y) for x in range(3) for y in range(3) if x%2==0 and y%2==0]

十二.有一个元组 a = (1,2,3),现在想修改1为11怎么做(元组是不可修改的)?

思路:讲元组转化为列表,修改,然后在讲列表转化为元组即可;

a = (1, 2, 3)
b = list(a)
b[0] = 11
c = tuple(b)
print(c)
十三.已知字典:ainfo = {'ab':'liming','ac':20}


完成下面的操作


1 使用2个方法,输出的结果:

ainfo = {'ab':'liming','ac':20,'sex':'man','age':20}

#方法一: 
ainfo['sex'] = 'man'
ainfo['age'] = '20'
#方法二: 
ainfo.update({'sex':'man'})
ainfo.update({'age':'20'})
print ainfo
2 输出结果:['ab','ac']
ainfo.keys()
3 输出结果:['liming',20]
ainfo.values()
4 通过2个方法返回键名ab对应的值。
#方法一: 
ainfo.get('ab')

#方法二: 
list(ainfo.values())[0]
5 通过2个方法删除键名ac对应的值。
方法一: 
del ainfo['ac']

方法二:
 ainfo.pop('ac')
十四.列表a = [11,22,24,29,30,32]
1 把28插入到列表的末端
2 在元素29后面插入元素57
3 把元素11修改成6
4 删除元素32

5 对列表从小到大排序

a = [11,22,24,29,30,32]
a.append(28)
print(a) #[11, 22, 24, 29, 30, 32, 28]
a.insert(4,57)
print(a)  #[11, 22, 24, 29, 57, 30, 32, 28]
a[0]=6
print(a)  #[6, 22, 24, 29, 57, 30, 32, 28]
del a[6]
del a[-1]
a.pop()
print(a) #[6, 22, 24, 29, 57]
a.sort()
print(a) #[6, 22, 24, 29, 57]


猜你喜欢

转载自blog.csdn.net/QCIWYY/article/details/80581949