python基础复习之数字和字符串

来源:互联网 发布:淘宝海外直购能退货吗 编辑:程序博客网 时间:2024/05/29 16:50

1、简述变量、对象、引用的关系(用一到两句话)
a = 1
a是变量名,1是对象,a引用了1,a没有类型,type(a)==type(1)
2、对象的两个标准头信息是什么?分别有什么用
计数器,类型标识符
计数器:判断对象是否已经回收
类型标识符:标明对象类型
3、简述一下对象的回收机制
通过计数器实现:当一个对象的引用被创建或者复制时,对象的引用计数加1;当一个对象的引用被销毁时,对象的引用计数减1;当对象的引用计数减少为0时,就意味着对象已经没有被任何人使用了,可以将其所占用的内存释放了。

4、什么是复用,怎么判断两个变量是否是复用的关系
通过查看内存地址
a = 1
b = a
id(a) == id(b) <-> a is b

5、简单的说一下浅拷贝与深拷贝的关系
In [2]: import copy
In [3]: l = (1,2,[1,2,3])
In [4]: a = copy.copy(l) #浅拷贝
In [5]: b = copy.deepcopy(l) #深拷贝
In [7]: a
Out[7]: (1, 2, [1, 2, 3])
In [8]: b
Out[8]: (1, 2, [1, 2, 3])
In [9]: l[2].append(4)
In [10]: a
Out[10]: (1, 2, [1, 2, 3, 4])
In [11]: b
Out[11]: (1, 2, [1, 2, 3])
总结:浅拷贝是指向变量的,即a->l,所以l变,它也变
深拷贝是指向变量指向的内存的,即b->(1,2,[1,2,3]),所以l变它不变
另一种解释:浅拷贝只拷贝父对象,深拷贝既拷贝父对象,也拷贝子对象。

6、常见的数字类型有哪些?
int float complex
7、数字一般在程序实战中体现在哪几块?
计数(想不到了)
8、 2*(3+4)与2* 3 +4的区别
见小学数学课本
9、 怎么样去求一个数字的平方?
import math
x = 3
result = math.sqrt(x)
result = 3*3
result = 3**2
10、1+ 2.0返回的是什么类型
float
11、如何将整数转为浮点数
a = 1
result = float(a)
result = 1*1.0 or 1/1.0 or 1+0.0
12、如何将整数转换成八进制、十六进制、二进制的形式。
bin 2
oct 8
int 10

bin(10)
0b1010’
oct(10)
012’
hex(10)
0xa’16

13、怎样去截断或舍去浮点数的小数部分?

a = ‘%0.1f’ % math.pi
a
‘3.1’
a = ‘%0.5f’ % math.pi
a
‘3.14159’
小数点后的数字表示要保留的小数位数,这里是四舍五入,不过最后结果是字符串

字符串题目:
1、去空格及特殊符号

s = ’ wsj
s.rstrip()
’ wsj’
s.strip()
‘wsj’
2、复制字符串
s = ‘wsjjj’
a = s[:]
a
‘wsjjj’
s = ‘wsj’
a
‘wsjjj’
3、连接字符串
a = ‘hello’
b = ‘world’
c = a + b
c
‘helloworld’
4、查找字符
a.find(‘l’)
2
#返回最左边出现的索引
a.find(‘a’)
-1
#若不存在,返回-1
5、比较字符串
amp(a,b)
#相同,返回0,否则-1
6、扫描字符串是否包含指定字符
in
#返回BOOL值
7、字符串长度
len()
8、大小写转换
s.upper()
s.lower()
s.swapcase()
9、追加指定长度字符串
s = s+’wsj’
10、字符串指定长度比较
a = ‘wsj’
b = ‘wsjjj’
cmp(a,b)
-1
cmp(a[0:2],b[0:2])
0
11、将字符串前N个字符替换为指定的字符
b.replace(b[0:N-1],’wsj’)
12、扫描字符串
for i in s:
print i
13、翻转字符串
s = s[::-1]
14、查找字符串
s.find(‘wsj’)
15、分割字符串
s[2:5:1]
s[2:-1:2]
17、只显示字母和数字
s =”’dsaed234./’23eeda’. das\”’
s1 = ”
for i in s:
if i.isalnum():
#if i.isdigit() or i.isalpha():
s1 = s1 + i
print s1
结果:dsaed23423eedadas
18、获取字符串
切片
19、字符串输出时对齐
制表符’\t’
20、字符串搜索和替换
s = ‘hello world’
s.replace(‘world’,’wsj’)
‘hello wsj’
21、字符串的分割和组合
s = ‘2016-11-23-18-57-44’
a = s.split(‘-‘)
a
[‘2016’, ‘11’, ‘23’, ‘18’, ‘57’, ‘44’]
a
[‘2016’, ‘11’, ‘23’, ‘18’, ‘57’, ‘44’]
‘/’.join(a)
‘2016/11/23/18/57/44’
22、字符串编码和解码
http://xanderzhang.iteye.com/blog/465992
23、字符串的测试、判断
isdigit:全为数字
isalnum:全为数字或字母
isalpha:全为字母
ispower
isspace
24、逆转字符串——输入一个字符串,将其逆转并输出。
s[::-1]

26、统计元音字母——输入一个字符串,统计处其中元音字母的数量。更复杂点的话统计出每个元音字母的数量。    s = 'goodgoodstudy dayday up! yeah!'    d = {'a':0,'e':0,'i':0,'o':0,'u':0}    for i in s:        if 'a' == i or 'a' == i.lower():            d['a'] += 1        if 'e' == i or 'e' == i.lower():            d['e'] += 1        if 'i' == i or 'i' == i.lower():            d['i'] += 1        if 'o' == i or 'o' == i.lower():            d['o'] += 1        if 'u' == i or 'u' == i.lower():            d['u'] += 1    print d27、判断是否为回文——判断用户输入的字符串是否为回文。回文是指正反拼写形式都是一样的词,譬如“racecar”。s == s[::-1]28、统计字符串中的单词数目——统计字符串中单词的数目,更复杂的话从一个文本中读出字符串并生成单词数目统计结果。def deal_file(s):    L = s.split(' ')    L1 = []    d = {}          for i in L:        if  i.isalpha():            i = i.strip()            i = i.lower()            L1.append(i)    for i in L1:        if i not in d:            d[i] = 1        else:            d[i] += 1    return dprint deal_file(s)
1 0
原创粉丝点击