- 写一个匿名函数,判断指定的年是否是闰年
year = lambda x: print(x % 4 == 0 and x % 100 != 0 or x % 400 == 0)
- 写一个函数将一个指定的列表中的元素逆序( 如[1, 2, 3] -> [3, 2, 1])(注意:不要使用列表自带的逆序函数)
def list1(list2):
return list2[::-1]
- 写一个函数,获取指定列表中指定元素的下标(如果指定元素有多个,将每个元素的下标都返回)
例如: 列表是:[1, 3, 4, 1] ,元素是1, 返回:0,3
def list1(list2, list3):
lens = len(list2)
list4 = []
for i in range(lens):
if list2[i] == list3:
list4.append(i)
return list4
- 写一个函数,能够将一个字典中的键值对添加到另外一个字典中(不使用字典自带的update方法)
def dict1(dict2):
dict3 = {}
for i in dict2:
values = dict2[i]
dict3[i] = values
return dict3
- 写一个函数,能够将指定字符串中的所有的小写字母转换成大写字母;所有的大写字母转换成小写字母(不能使用字符串相关方法)
def str1(str2):
str3 = ''
for i in str2:
if 'a' <= i <= 'z':
s1 = chr(ord(i)-32)
str3 += s1
if 'A' <= i <= 'Z':
s2 = chr(ord(i) + 32)
str3 += s2
else:
str3 += i
return str3
- 实现一个属于自己的items方法,可以将指定的字典转换成列表。列表中的元素是小的列表,里面是key和value (不能使用字典的items方法)
例如:{'a':1, 'b':2} 转换成 [['a', 1], ['b', 2]]
def change_key_value(dic: dict):
for key in dic.copy():
dic[dic.pop(key)] = key
dict1 = {'a': 1, 'b': 2, 'c': 3}
change_key_value(dict1)
- 用递归函数实现,逆序打印一个字符串的功能:
例如:reverse_str('abc') -> 打印 ‘cba’
def reverse(str_, i=-1):
if i == -len(str_):
return str_[i]
print(str_[i], end='')
i -= 1
return reverse(str_, i)
- 编写一个递归函数,求一个数的n次方
def sum1(n,n1):
if n == 1:
return n1
if n1 == 0:
return 0
return sum1(n-1,n1) * n1
- 写一个可以产生学号的生成器, 生成的时候可以自定制学号数字位的宽度和学号的开头
例如:
study_id_creater('py',5) -> 依次产生: 'py00001', 'py00002', 'py00003',....
study_id_creater('test',3) -> 依次产生: 'test001', 'test002', 'test003',...
def study_id_creater(str1,n,count):
for i in range(1, count+1):
yield str1.ljust(n + len(str1), '0') + str(i)
gtn = study_id_creater('py',5,5)
- 编写代码模拟达的鼠的小游戏,
假设一共有5个洞口,老鼠在里面随机一个洞口;
人随机打开一个洞口,如果有老鼠,代表抓到了
如果没有,继续打地鼠;但是地鼠会跳到其他洞口
import random
while True:
person = random.randint(1, 5)
mouse = random.randint(1, 5)
if person != mouse:
print("老鼠在第%s个洞哦!" % mouse)
else:
print("打到了")
- 编写一个函数,计算一个整数的各位数的平方和
例如: sum1(12) -> 5 sum1(123) -> 14
def sum1(int1):
sum2 = 0
str2 = str(int1)
for i in range(len(str2)):
sum2 += int(str2[i]) ** 2
return sum2
- 楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编程序计算共有多少种不同的走法?需求: 编制一个返回值为整型的函数Fib(n),用于获取n阶台阶的走法(挣扎一下)
def fib(n):
step1 = 0
if n == 1:
return 1
if n == 2:
return 2
return fib(n-1) + fib(n - 2)
- 写一个函数对指定的数分解因式
例如: mab(6) —> 打印: 2 3 mab(3) -> 1 3 mab(12) -> 2 2 3
def decomposition(n):
list1 = []
for i in range(1, int(n/2)+1):
if n % i == 0:
list1.append(i)
return list1
-
写一个函数判断指定的数是否是回文数
123321是回文数 12321是回文数 525是回文数
def palindromic(n):
str1 = str(n)
str2 = str1[::-1]
lenth = len(str1)
if lenth % 2 == 0:
if str1[:int(lenth/2)] == str2[:int(lenth/2)]:
return 1
else:
return -1
else:
if str1[:int(lenth / 2+1)] != str2[:int(lenth / 2 + 1)]:
return -1
else:
return 1
- 写一个函数判断一个数是否是丑数(自己百度丑数的定义)
def ugly(n):
while True:
if n % 2 == 0:
n = n // 2
elif n % 3 == 0:
n = n // 3
elif n % 5 == 0:
n = n // 5
else:
return False
if n == 1:
return True