一些python的小练习

1、写一个函数,替换一个字符串中的一个或几个字串
例如:

In [2]: str
Out[2]: 'hello world!'

In [3]: def myreplace(str,oldword,newword):
   ...:    a = str.split(oldword)
   ...:    return newword.join(a)
   ...: 

In [4]: b = myreplace(str,"world","tom")

In [5]: b
Out[5]: 'hello tom!'

split 和 join的用法

split 用来分片ian
用法:
字符串.split(分隔符)

In [6]: a = "hah ss jj sa sas"

In [7]: a.split("ss")
Out[7]: ['hah ', ' jj sa sas']

In [8]: a.split(" ")
Out[8]: ['hah', 'ss', 'jj', 'sa', 'sas']

join 用来添加字符串
用法:
字符串.join(可迭代对象)
例如a.join(b)
b每迭代一次,在其后面添加一个a

In [14]: a = "aaa"

In [15]: a.join("bbb")
Out[15]: 'baaabaaab'

还可以这样实现

#!/usr/bin/python
#

pstr = "hello world! sdsd world sdsd world !!!"

def myreplace(pstr,oldword,newword):
    while True:
        pos = pstr.find(oldword)
        if pos == -1:
            break
        pstr = pstr[:pos] + newword + pstr[(pos + len(oldword)):]
    return pstr
a = myreplace(pstr,"world","tom")
print(a)

2、在python中如果一行写不下,可以使用 \ 分行

In [8]: a = "hello" \
   ...: "world"

In [9]: a
Out[9]: 'helloworld'

3、一行中有两个语句,可以使用分号; 隔开

In [10]: a = 1 ; print "haha"
haha

In [11]: a
Out[11]: 1

4、使用内置函数update来更新字典的值
例如将两个字典合并

In [17]: a
Out[17]: {'name': 'wtt'}

In [18]: type(a)
Out[18]: dict

In [19]: b = {"age":2}

In [20]: type(b)
Out[20]: dict

In [21]: b
Out[21]: {'age': 2}

In [22]: a.update(b)

In [23]: a
Out[23]: {'age': 2, 'name': 'wtt'}

5、写一段python代码。实现列表中的元素分类,如 :[1,2,3,4,…100]变成[[1,2,3],[4,5,6]…]

In [34]: a = [ i for i in range(1,101)]
In [36]: b = [ a[i:i+3] for i in range(0,len(a),3)]

6、以下程序打印结果是什么?

#!/bin/python
#

def extendList(val,list=[]):
    list.append(val)
    return list

list1 = extendList(10)
list2 = extendList(123,['a','b','c'])
list3 = extendList('a')

print "list1 = %s" % list1
print "list2 = %s" % list2
print "list3 = %s" % list3
[root@localhost python]# python test4.py
list1 = [10, 'a']
list2 = ['a', 'b', 'c', 123]
list3 = [10, 'a']

分析:如果参数是可变数据类型,并且缺省参数,那么参数只初始化一次
list1将10传给了list列表,这时候list = [10],list1= [10]
list2中list列表并没有缺省,所以list2 = [‘a’,‘b’,‘c’,123]
list3中list列表依然缺省,由于之前已经初始化一次了,所以list3 = [‘a’,10]

由于此代码中是先进行三次初始化。然后再进行打印,所以list3的结果会对list1有影响

将上述代码修改:


def extendList(val,list=[]):
	list.append(val)
	return list
list1 = extendList(10)
print "list1 = %s" % list1
list2 = extendList(123,['a','b','c'])
print "list2 = %s" % list2
list3 = extendList('a')
print "list3 = %s" % list3

打印结果:

[root@localhost python]# python test4.py
list1 = [10]
list2 = ['a', 'b', 'c', 123]
list3 = [10, 'a']

7、写一个函数,给定参数n,生成含有n个元素的值为1~n的数组,元素顺序随机但不能重复。


from random import randint
def test(n):
    l=[]


    for i in range(1,n+1):

        while True:
            r = randint(1,n)
            if r not in l:
                break
            else:
                r = randint(1,n)
        l.append(r)
    return l

n = input("输入一个数:")
result = test(n)
print(result)

8、python中的循环中断,continue,break区别
continue 会跳出当前循环,break跳出整个循环
break的执行结果:

for i in range(1,10):
    if i==5:
        break
    print(i)
[root@localhost python]# python test6.py 
1
2
3
4

continue执行结果:

for i in range(1,10):
    if i==5:
        continue
    print(i)
[root@localhost python]# python test6.py 
1
2
3
4
6
7
8
9

9、遍历目录以及子目录,找出其中的“.pyc”文件

import os
a = []
for i in os.walk("/mnt/python"):
    for file in i[2]:
        if file.endswith("pyc"):
            print(file)
[root@localhost python]# python test7.py 
test2.pyc
test1.pyc
__init__.pyc
test.pyc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值