- 寫一個匿名函數(shù)钝尸,判斷指定的年是否是閏年
year = lambda x: print(x % 4 == 0 and x % 100 != 0 or x % 400 == 0)
- 寫一個函數(shù)將一個指定的列表中的元素逆序( 如[1, 2, 3] -> [3, 2, 1])(注意:不要使用列表自帶的逆序函數(shù))
def list1(list2):
return list2[::-1]
- 寫一個函數(shù)吓歇,獲取指定列表中指定元素的下標(如果指定元素有多個,將每個元素的下標都返回)
例如: 列表是:[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
- 寫一個函數(shù),能夠將一個字典中的鍵值對添加到另外一個字典中(不使用字典自帶的update方法)
def dict1(dict2):
dict3 = {}
for i in dict2:
values = dict2[i]
dict3[i] = values
return dict3
- 寫一個函數(shù),能夠將指定字符串中的所有的小寫字母轉換成大寫字母票摇;所有的大寫字母轉換成小寫字母(不能使用字符串相關方法)
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
- 實現(xiàn)一個屬于自己的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)
- 用遞歸函數(shù)實現(xiàn)粥帚,逆序打印一個字符串的功能:
例如: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)
- 編寫一個遞歸函數(shù)灰蛙,求一個數(shù)的n次方
def sum1(n,n1):
if n == 1:
return n1
if n1 == 0:
return 0
return sum1(n-1,n1) * n1
- 寫一個可以產生學號的生成器, 生成的時候可以自定制學號數(shù)字位的寬度和學號的開頭
例如:
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個洞口,老鼠在里面隨機一個洞口摩梧;
人隨機打開一個洞口物延,如果有老鼠,代表抓到了
如果沒有仅父,繼續(xù)打地鼠叛薯;但是地鼠會跳到其他洞口
import random
while True:
person = random.randint(1, 5)
mouse = random.randint(1, 5)
if person != mouse:
print("老鼠在第%s個洞哦!" % mouse)
else:
print("打到了")
- 編寫一個函數(shù),計算一個整數(shù)的各位數(shù)的平方和
例如: 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階,編程序計算共有多少種不同的走法省容?需求: 編制一個返回值為整型的函數(shù)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)
- 寫一個函數(shù)對指定的數(shù)分解因式
例如: 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
-
寫一個函數(shù)判斷指定的數(shù)是否是回文數(shù)
123321是回文數(shù) 12321是回文數(shù) 525是回文數(shù)
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
- 寫一個函數(shù)判斷一個數(shù)是否是丑數(shù)(自己百度丑數(shù)的定義)
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