1.写一个函数将一个指定的列表中的元素逆序( 如[1, 2, 3] -> [3, 2, 1])(注意:不要使 表自带的逆序函数)
代码如下
def reserver(n):
index = len(n)
for x in range(index // 2):
t = n[x]
n[x] = n[index - x -1]
n[index - x -1] = t
return n
list1 = ['a', 1, 2, 'asd', 56]
list3 = ['a', 1, 2, 'asd']
list2 = reserver(list1)
print('逆序后', list2)
list2 = reserver(list2)
print('逆序后', list2)
运行结果
逆序后 [56, 'asd', 2, 1, 'a']
逆序后 ['a', 1, 2, 'asd', 56]
2.写一个函数,提取出字符串中所有奇数位上的字符
代码如下
def qi_shu(str1):
str2 = str1[1::2]
return str2
str1 = input('请输入一串字符串:')
print('奇数位上的字符为:', qi_shu(str1))
运行结果
请输入一串字符串:5sd5a6ds5
奇数位上的字符为: s56s
3.写一个匿名函数,判断指定的年是否是闰年####代码如下
year = lambda x: x % 400 == 0 or (x % 4 == 0 and x % 100 != 0)
print('是否闰年:', year(2018))
运行结果
是否闰年: False
4.使用递归打印:
n = 3的时候
@
@@@
@@@@@
n = 4的时候:
@
@@@
@@@@@
@@@@@@@
代码如下
def print_star(n, t):
if n == 1:
print(' ' * t, '@')
return
print_star(n - 1, t)
print(' ' * (t - n + 1), '@' * (n + n - 1))
print_star(5, 5)
运行结果
@
@@@
@@@@@
@@@@@@@
@@@@@@@@@
5.写函数,利用递归获取斐波那契数列中的第 10 个数,并将该值返回给调用者。
代码如下
def f1(a, a1, a2):
if a == 10:
return a1
a3 = a1 + a2
r = f1(a + 1, a2, a3)
return r
ret = f1(1, 0, 1)
print('第十个斐波那契数:', ret)
运行结果
第十个斐波那契数: 34
6.写一个函数,获取列表中的成绩的平均值,和最高分
代码如下
def Avg_max(*nums):
sum1 = sum(nums)
avg1 = sum1 / len(nums)
n = 0
for x in range(len(nums)):
if n < nums[x]:
n = nums[x]
return avg1,n
print('平均值为:', Avg_max(52, 36, 10, 3)[0], '最大值为:', Avg_max(52, 36, 10, 3)[1])
运行结果
平均值为: 25.25 最大值为: 52
7.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,值,和最高分
代码如下
def ji_index(*n):
list1 = list(n)
list2 = []
for x in range(len(list1)):
if x & 1:
list2.append(list1[x])
return list2
print('新列表:', ji_index(2, 5, 'sad', 55, 'ad'))
运行结果
新列表: [5, 55]
8.实现属于自己的字典update方法:用一个字典去更新另一个字典的元素(不能使用自带的update方法)yt_update(字典1, 字典2)
代码如下
def dict_update(num1, num2):
dict1 = dict(num1)
dict2 = dict(num2)
dict3 = {}
for key1, value1 in dict1.items():
for key2, value2 in dict2.items():
if key1 != key2:
dict3[key1] = value1
dict3[key2] = value2
else:
dict3[key1] = value2
return dict3
student = {'name': '小明', 'age': 30, 'study_id': 'py001', 'sex': 'boy'}
student1 = {'name': '小王', 'study_id': 'py001', 'sex': 'boy', 'tel': 4665456}
print('更新后为:', dict_update(student, student1))
运行结果
更新后为: {'name': '小王', 'study_id': 'py001', 'sex': 'boy', 'tel': 4665456, 'age': 30}
9.实现属于自己的items方法:将字典转换成列表,字典中的键值对转换成元祖。(不能使用items方法)yt_items(字典)
代码如下
def dict_update(num1, num2):
dict1 = dict(num1)
dict2 = dict(num2)
dict3 = {}
for key1, value1 in dict1.items():
for key2, value2 in dict2.items():
if key1 != key2:
dict3[key1] = value1
dict3[key2] = value2
else:
dict3[key1] = value2
return dict3
student = {'name': '小明', 'age': 30, 'study_id': 'py001', 'sex': 'boy'}
student1 = {'name': '小王', 'study_id': 'py001', 'sex': 'boy', 'tel': 4665456}
print('更新后为:', dict_update(student, student1))
运行结果
转换后: [('name', '小明'), ('age', 30), ('study_id', 'py001'), ('sex', 'boy')]