python中list函数例题_python 练习题(三)
1.根據下圖所示,對print_info里的代碼進行實現
def info(name, age, sex, hobblie):
print(
‘‘‘
-------------------------info------------------------------
Name : %s
Age : %s
Sex : %s
Hobblie : %s
--------------------end------------------------------------
‘‘‘ % (name, age, sex, hobblie))
info(name=‘alex‘, age=‘22‘, sex=‘m‘, hobblie=‘swim‘)
info(name=‘ww‘, age=‘23‘, sex=‘w‘, hobblie=‘book‘)
寫函數,計算傳入數字參數的和。(動態傳參)
x = int(input("輸入要計算的值x: ")) # 定義動態輸入的x值
y = int(input("輸入要計算的值y: ")) # 定義動態輸入的y值
def calc(x, y):
result = x + y
return ("結果是:", result)
a = calc(x, y)
print(a)
寫函數,用戶傳入修改的文件名,與要修改的內容,執行函數,完成整個文件的批量修改操作
import os
def update_file(new_filename,old_str, new_str):
old_f = open(‘file3.txt‘, ‘r‘, encoding=‘utf-8‘)
new_f = open(new_filename, ‘w‘, encoding=‘utf-8‘)
for line in old_f:
if line == old_str:
line = line.replace(old_str, new_str) # 替換文件內容
new_f.write(line)
old_f.close()
new_f.close()
os.replace(‘file3.txt‘,new_filename) # 替換文件名
update_file(‘file1.txt‘,‘天天向上‘,‘學習榜樣‘)
#file1.txt 新文件名
#‘天天向上‘ 舊內容
#‘學習榜樣‘ 新內容
寫函數,檢查用戶傳入的對象(字符串、列表、元組)的每一個元素是否含有空內容。
def check(str1,list1,tuple1):
if str1.is\space():
print("未輸入字符串")
else:
print(‘字符串是:‘,str1)
if len(list1) == 0:
print("未輸入列表")
else:
print("列表是:",list1)
if len(tuple1) == 0:
print("未輸入元組")
else:
print("元組是:",tuple1)
check(‘jj‘,[],(2,2))
寫函數,檢查傳入字典的每一個value的長度,如果大于2,那么僅保留前兩個長度的內容(對value的值進行截斷),并將新內容返回給調用者,注意傳入的數據可以是字符、list、dict
dict1={‘name‘:‘jack‘,‘sex‘:‘man‘,‘k3‘:[0,1,2,3]} # 定義字典
def check_len(dict1):
new = []
for i in dict1.values():
if len(i) > 2: # 判斷長度
new.append(i[0:2]) # 截取前2位
else:
continue
return new # 輸出列表值
a=check_len(dict1)
print(a)
閉包的概念
關于閉包,即函數定義和函數表達式位于另一個函數的函數體內(嵌套函數)。
而且這些內部函數可以訪問他們所在的外部函數中聲明的所有局部變量,參數。
當其中一個這樣的內部函數在包含他們的外部函數之外被調用時候,就形成了閉包。
也就是說,內部函數會在外部函數返回后被執行。而當這個內部函數執行的時候,
它仍然必需訪問其外部函數的局部變量,參數以及其他內部函數,這些局部變量,
參數聲明(最初時)的值是外部函數返回時候的值,但也會受到內部函數的影響。
閉包的意義:返回的函數對象,不僅僅是一個函數對象,在該函數外還包裹了一層作用域,這使得,該函數無論在何處調用,優先使用自己外層包裹的作用域
簡單的說,閉包就是一個內部函數+外部環境
寫函數,返回一個撲克牌列表,里面有52項,每一項是一個元組
例如:[(‘紅心’,2),(‘草花’,2), …(‘黑桃A’)]
def card():
list1=[]
num=[2,3,4,5,6,7,8,9,10,‘J‘,‘k‘,‘Q‘,‘A‘]
type = [‘紅心‘, ‘草花‘, ‘方塊‘, ‘黑桃‘]
for i in num:
for j in type:
list1.append((j,i))# 添加元組
return list1
a=card()
print(a)
寫函數,傳入n個數,返回字典{‘max’:最大值,’min’:最小值}
例如:minmax(2,5,7,8,4)
返回:{‘max’:8,’min’:2}
def funnc(*args):
the_max = args[0] # 最大值在數組之中
the_min = args[0] # 最小值在數組之中
for i in args:
if i > the_max:
the_max = i
elif i < the_min:
the_min = i
return {‘max‘: the_max, ‘min‘: the_min} # 返回字典
res = funnc(1, -3, 2, 8, 4)
print(res)
8.寫函數,專門計算圖形的面積
其中嵌套函數,計算圓的面積,正方形的面積和長方形的面積
調用函數area(‘圓形’,圓半徑) 返回圓的面積
調用函數area(‘正方形’,邊長) 返回正方形的面積
調用函數area(‘長方形’,長,寬) 返回長方形的面積
#代碼模板
def area():
def 計算長方形面積():
pas\s
def 計算正方形面積():
pas\s
def 計算圓形面積():
pas\s
import math
print(‘‘‘
請按照如下格式輸出:
調用函數area(‘圓形’,圓半徑) 返回圓的面積
調用函數area(‘正方形’,邊長) 返回正方形的面積
調用函數area(‘長方形’,長,寬) 返回長方形的面積‘‘‘)
def area(name, *args):
def areas_rectangle(x, y):
return ("長方形的面積為:", x * y)
def area_square(x):
return ("正方形的面積為:", x ** 2)
def area_round(r):
return ("圓形的面積為:", math.pi * r * r)
if name == ‘圓形‘:
return area_round(*args)
elif name == ‘正方形‘:
return area_square(*args)
elif name == ‘長方形‘:
return areas_rectangle(*args)
print(area(‘長方形‘, 3, 4))
print(area(‘圓形‘, 3))
print(area(‘正方形‘, 3))
9.寫函數,傳入一個參數n,返回n的階乘
例如:cal(7)
計算7654321
def cal(n):
res=1 # 初始值1
for i in range(n,0,-1): # 初始值n 末尾值1 步長-1
res=res*i
return res
print(cal(7))
17.有列表 li = [‘alex’, ‘egon’, ‘smith’, ‘pizza’, ‘alen’], 請將以字母“a”開頭的元素的首字母改為大寫字母;
li = [‘alex‘, ‘egon‘, ‘smith‘, ‘pizza‘, ‘alen‘]
li_new=[]
for i in li:
if i.startswith(‘a‘): # 以 a 開頭
li_new.append(i.capitalize()) # 裝換成大寫A
else:
li_new.append(i)
print(li_new)
18.有列表 li = [‘alex’, ‘egon’, ‘smith’, ‘pizza’, ‘alen’], 請以列表中每個元素的第二個字母倒序排序;
li = [‘alex‘, ‘egon‘, ‘smith‘, ‘pizza‘, ‘alen‘]
print(list(sorted(li, key=lambda x: x[1], reverse=True)))
19.有名為poetry.txt的文件,其內容如下,請刪除第三行;
昔人已乘黃鶴去,此地空余黃鶴樓。
黃鶴一去不復返,白云千載空悠悠。
晴川歷歷漢陽樹,芳草萋萋鸚鵡洲。
日暮鄉關何處是?煙波江上使人愁。
import os
f1=open(‘poetry.txt‘,‘r‘,encoding=‘utf-8‘)
f2=open(‘poetry_new.txt‘,‘w‘,encoding=‘utf-8‘)
for index,line in enumerate(f1):
if index==2:
line=‘ ‘
f2.write(line)
f1.close()
f2.close()
os.remove(‘poetry.txt‘)
os.replace(‘poetry_new.txt‘,‘poetry.txt‘)
20.有名為username.txt的文件,其內容格式如下,寫一個程序,判斷該文件中是否存在”alex”, 如果沒有,則將字符串”alex”添加到該文件末尾,否則提示用戶該用戶已存在;
pizza
alex
egon
import os
f1=open(‘username.txt‘,‘r+‘,encoding=‘utf-8‘)
f2=open(‘username_new.txt‘,‘w‘,encoding=‘utf-8‘)
data=f1.readlines() # 先讀取到內存中,f1文件無法讀取長度
for index,line in enumerate(data):
f2.write(line) # 先寫入文件
if ‘alex‘ in line: # 判斷用戶是否在文件里面,就退出
print("alex 用戶已存在!")
f1.close()
f2.close()
break
if ‘alex‘ not in line and index == len(data)-1: # 不在里面,就在末尾追加
f2.write(‘alex‘)
f1.close()
f2.close()
#新舊文件替換
os.remove(‘username.txt‘)
os.replace(‘username_new.txt‘,‘username.txt‘)
21.有名為user_info.txt的文件,其內容格式如下,寫一個程序,刪除id為100003的行;
pizza,100001
alex, 100002
egon, 100003
import os
f1=open(‘user_info.txt‘,‘r+‘,encoding=‘utf-8‘)
f2=open(‘user_info_new.txt‘,‘w‘,encoding=‘utf-8‘)
for line in f1:
if ‘100003‘ in line:
line=‘ ‘ # 空格代替刪除
f2.write(line)
f1.close()
f2.close()
os.remove(‘user_info.txt‘)
os.replace(‘user_info_new.txt‘,‘user_info.txt‘)
22.有名為user_info.txt的文件,其內容格式如下,寫一個程序,將id為100002的用戶名修改為alex li;
pizza,100001
alex, 100002
egon, 100003
import os
f1=open(‘user_info.txt‘,‘r+‘,encoding=‘utf-8‘)
f2=open(‘user_info_new.txt‘,‘w‘,encoding=‘utf-8‘)
data=f1.readlines()
for line in data:
if ‘100002‘ in line:
line=‘alex li,100002\n‘ # 替換新內容
f2.write(line)
f1.close()
f2.close()
os.remove(‘user_info.txt‘)
os.replace(‘user_info_new.txt‘,‘user_info.txt‘)
原文:https://blog.51cto.com/13760351/2492782
總結
以上是生活随笔為你收集整理的python中list函数例题_python 练习题(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sublime3中如何使用sublime
- 下一篇: 本地的手机号码归属地查询-oracle数