Python基础第五天

一、内容

二、练习

练习1

题目:写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成批量修改操作

图示:

 代码:

import os
def revise(f,r,x):
    with open(f,'r',encoding='utf-8') as read_f,
        open('.li.swp','w',encoding='utf-8') as write_f:
        for line in read_f:
            if r in line:
                line = line.replace(r,x)
            write_f.write(line)
    os.remove(f)
    os.rename('.li.swp',f)
revise('a.txt','knight','dark')

输出结果:

 a.txt原文件内容:

 

运行该程序后,a.txt文件的内容:

练习2

题目:写函数,计算传入字符串中【数字】、【字母】、【空格】 以及 【其他】的个数

图示:

代码:

user_input = input('Please enter:')
def count(w):
    a = 0
    b = 0
    c = 0
    d = 0
    for i in w:
        if i.isdigit():
            a += 1
        elif i.isalpha():
            b += 1
        elif i.isspace():
            c += 1
        else:
            d += 1
    print('The number entered is %s,
The letter entered is %s,
The number of spaces entered is %s
Other input is %s'%(a,b,c,d))
count(user_input)

输出结果:

例:

练习3

题目:写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。

图示:

代码:

def func_len(w):
    if isinstance(w,str) or isinstance(w,tuple) or isinstance(w,list):
    # isinstance是Python中的一个内建函数。是用来判断一个对象的变量类型。
        if len(w)>5:
            print('length>5')
        else:
            print('length<5')
    else:
        print('not str,not list,not tuple.')
func_len('knight')
func_len([1,2,3,4,5,6,7])
func_len((1,2,3))

# 当用户输入的不是字符串、元组、列表时
func_len({'a':1,'b':2})

输出结果:

length>5
length>5
length<5
not str,not list,not tuple.
View Code

练习4

题目:写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。

图示:

代码:

def foo(func):
    if isinstance(func,str) or isinstance(func,list) or isinstance(func,tuple):
        for i,j in enumerate(func,0):
            if not str(j).strip():
                print('The No.%s element is empty'%i)

    else:
        print('not str,not list,not tuple')
foo(['','2','knight','','lisa'])
foo(('tangbao','zhuozi','','',1,2,3))
foo({'x':1,'y':2})

输出结果:

The No.0 element is empty
The No.3 element is empty
The No.2 element is empty
The No.3 element is empty
not str,not list,not tuple
View Code

练习5

题目:写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

图示:

代码:

def foo(func):
    if isinstance(func,list):
        if len(func) > 2:
            return func[0:2]
        else:
            return func
    return 'not a list'
print(foo({'x':1,'y':2}))
print(foo(['knight','lisa','zhuozi','tangbao']))
print(foo(['haha']))

输出结果:

not a list
['knight', 'lisa']
['haha']
View Code

练习6

题目:写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

图示:

代码:

def foo(func):
    if isinstance(func,list) or isinstance(func,tuple):
        l = []
        for i in func:
            if func.index(i) % 2 != 0:
                l.append(i)
        return l

    return 'not list or not tuple.'

print(foo([0,1,2,3,4,5,6,7,8]))
print(foo({'x':1,'y':2}))
print(foo('knight'))

输出结果:

[1, 3, 5, 7]
not list or not tuple.
not list or not tuple.
View Code

练习7

题目:写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

图示:

代码:

def foo(dic):
    if isinstance(dic,dict):
        for i in dic:
            if len(dic[i]) > 2:
                dic[i] = dic[i][:2]
        return dic
    return 'not dic'
print(foo({"k1": "value1", "k2": [11,22,33,44],"k3":"value3"}))
print(foo(['knight','lisa',1,2,3,4]))

输出结果:

{'k1': 'va', 'k2': [11, 22], 'k3': 'va'}
not dic
View Code

三、英语

1、instance

 ['ɪnstəns]    n.实例

2、return

[rɪ'tɝn]    vt.返回

3、encode

[ɪn'kod]    vt.编码

4、decode

[‚diː'kəʊd]    vt.解码

5、read

 [rid; rɛd]    vi.读

6、write

[raɪt]    vi.写

原文地址:https://www.cnblogs.com/fyknight/p/8048010.html