1.寫一個函數將一個指定的列表中的元素逆序(例如[1, 2, 3] -> [3, 2, 1])(注意:不要使用列表自帶的逆序函數)
def ni_list(list1):
for index in range(len(list1)):
#取出對應元素
item = list1.pop(index)
#插入到最前面
list1.insert(0,item)
print(ni_list([1,2,3]))
[3, 2, 1]
2.寫一個函數,提取出字符串中所有奇數位上的字符
def find_str(string):
str1 = string[0::2] #聲明一個空串用來保存提取出來的字符
return str1
print(find_str('sdawe2133da!!'))
sdaweda
3.寫一個匿名函數,判斷指定的年是否是閏年
def find_years(years):
if years % 100 == 0 and years % 400 == 0:
print('%s是閏年' % years)
elif years % 100 != 0 and years % 4 == 0:
print('%s是閏年' % years)
else:
print('%s不是閏年' % years)
find_years(2019)
year = lambda x: ('%s是閏年' % x) if x % 100 == 0 and x % 400 == 0 or x % 100 != 0 and x % 4 == 0 else ('%s不是閏年' % x)
print(year(2020))
2019不是閏年
2020是閏年
4.使用遞歸打印:
n = 3的時候
@
@@@
@@@@@
n = 4的時候:
@
@@@
@@@@@
@@@@@@@
def print_star(n, m=0):
s = '@' * (n * 2 - 1)
if n == 0:
return
print_star(n-1, m+1)
print(' ' * m, end='')
print(s)
print_star(5)
@
@@@
@@@@@
@@@@@@@
@@@@@@@@@
5.寫函數,檢查傳入列表的長度,如果大于2,那么僅保留前兩個長度的內容,并將新內容返回給調用者。
def check_list(list1):
list2 = []
if len(list1) >= 2:
list2.append(list1[0])
list2.append(list1[1])
return list2
print(check_list([1, '3224d', '!!!!', 4]))
[1, '3224d']
6.寫函數,利用遞歸獲取斐波那契數列中的第 10 個數,并將該值返回給調用者。
def sum2(n=10):
if n == 1 or n == 2:
return 1
return sum2(n-1) + sum2(n-2)
print(sum2())
55
7.寫一個函數,獲取列表中的成績的平均值,和最高分
def get_score(scores):
sum1 = 0
return sum(scores)/len(scores), max(scores)
print(get_score([13, 435, 54, 233]))
(183.75, 435)
8.寫函數,檢查獲取傳入列表或元組對象的所有奇數位索引對應的元素,并將其作為新的列表返回給調用者
利用切片