- 写一个匿名函数,判断指定的年是否是闰年
n = int(input('请输入年份,判断是否闰年:'))
fn1 = lambda x:(x % 4 ==0 and x % 100 != 0) or (x % 100 == 0)
print(fn1(n))
- 写一个函数将一个指定的列表中的元素逆序( 如[1, 2, 3] -> [3, 2, 1])(注意:不要使用列表自带的逆序函数)
def exchange(str1: list):
# 让列表倒序排列
if len(str1) & 1:
len1 = len(str1) // 2 + 1
else:
len1 = len(str1) // 2
for x in range(len1):
str1[x], str1[len(str1)-1-x] = str1[len(str1)-1-x], str1[x]
return str1
str1 = [1, 2, 3]
str2 = exchange(str1)
print(str2)
- 写一个函数,获取指定列表中指定元素的下标(如果指定元素有多个,将每个元素的下标都返回)
例如: 列表是:[1, 3, 4, 1] ,元素是1, 返回:0,3
def find_index(str1: list, n: int):
# 找到元素的下标并返回
len1 = len(str1)
str2 = []
for x in range(len1):
if str1[x] == n:
str2.append(x)
if str2:
return str2
else:
return '该列表没有此元素'
str1 = [1, 3, 4, 1]
n = int(input('请输入元素:'))
str3 = find_index(str1, n)
print(str3)
- 写一个函数,能够将一个字典中的键值对添加到另外一个字典中(不使用字典自带的update方法)
def add_s(dict1: dict, dict2: dict):
# 将一个字典中的键值对添加到另外一个字典中
for key, value in dict2.items():
dict1[key] = value
return dict1
dict1 = {'name': '小明', 'age': 20}
dict2 = {'study_id': 'qf9233', 'tel': '293728973'}
dict3 = add_s(dict1, dict2)
print(dict3)
- 写一个函数,能够将指定字符串中的所有的小写字母转换成大写字母;所有的大写字母转换成小写字母(不能使用字符串相关方法)
def transform(str1: list):
# 转换字符串的大小写字母
str2 = str1.copy()
for x in range(len(str2)):
char = str2[x]
if 'a' <= char <= 'z':
str1[x] = chr(ord(char) - 32)
elif 'A' <= char <= 'Z':
str1[x] = chr(ord(char) + 32)
return str1
str1 =input('请输入元素:')
str3 = transform(str1)
print(str3)
-
实现一个属于自己的items方法,可以将指定的字典转换成列表。列表中的元素是小的列表,里面是key和value (不能使用字典的items方法)
例如:{'a':1, 'b':2} 转换成 [['a', 1], ['b', 2]]
def key_value(dict1:dict):
list2 = []
count1 = 0
for key in dict1:
m = key
count1 += 1
count2 = 0
for value in dict1.values():
count2 += 1
if count1 == count2:
list1 = [m, value]
list2.append(list1)
return list2
dict1 = {'a':1, 'b':2, 'c':3}
print(key_value(dict1))
- 用递归函数实现,逆序打印一个字符串的功能:
例如:reverse_str('abc') -> 打印 ‘cba’
def reverse_str(str1: str, i=-1):
if i == -len(str1):
print(str1[i])
return 1
print(str1[i], end='')
i -= 1
return reverse_str(str1, i)
reverse_str('abc')
- 编写一个递归函数,求一个数的n次方
def power(n, x):
# 算一个数的第几次方
if x == 1:
return n
return power(n, x-1)*n
m = int(input('请输入要算的值:'))
n = int(input('请输入几次方:'))
print(power(m, n))
- 写一个可以产生学号的生成器, 生成的时候可以自定制学号数字位的宽度和学号的开头
例如:
study_id_creater('py',5) -> 依次产生: 'py00001', 'py00002', 'py00003',....
study_id_creater('test',3) -> 依次产生: 'test001', 'test002', 'test003',...
def id_creater(begin: str, n: int):
for i in range(10 ** n):
after = '0' * (n - len(str(i))) + str(i)
print(begin+after)
yield
return begin
#方法2
# def study_id_creater(pre, width):
# for num in range(1, 10**width):
# yield pre+str(num).zfill(width)
#
#
# gen1 = study_id_creater('py1904',3)
# for x in range(3):
# print(next(gen1))
- 编写代码模拟达的鼠的小游戏,
假设一共有5个洞口,老鼠在里面随机一个洞口;
人随机打开一个洞口,如果有老鼠,代表抓到了
如果没有,继续打地鼠;但是地鼠会跳到其他洞口
import random
import time as tm
def whack_a_mole():
hole = int(input('猜一猜地鼠在哪?'))
while True:
if hole != random.randint(1, 5):
if 1 <= hole <= 5:
tm.sleep(1)
print('猜错了')
else:
print('超出范围')
return whack_a_mole()
else:
tm.sleep(1.5)
print('正确')
return 0
whack_a_mole()
方法2
# import random
# def game():
# print('======游戏开始======')
# while True:
# num = random.randint(1,5)
# guss = int(input('请随便猜:'))
# if num == guss:
# print('抓到了')
# print('=====游戏结束=====')
# break
# else:
# print('没抓到,继续')
#
# game()
- 编写一个函数,计算一个整数的各位数的平方和
```python
例如: sum1(12) -> 5 sum1(123) -> 14
```
def quadratic_sum(num: int):
sum_ = 0
digits = len(str(num))
for i in range(1, digits+1):
sum_ += (num % (10 ** i) // 10 ** (i - 1)) ** 2
return sum_
n = int(input('请输入整数:'))
print(quadratic_sum(n))
- 楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编程序计算共有多少种不同的走法?需求: 编制一个返回值为整型的函数Fib(n),用于获取n阶台阶的走法(挣扎一下)
def fib(n):
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 mab(n:int):
list1 = []
x = 2
while x < n:
if n % x == 0:
list1.append(x)
n = n // x
else:
x += 1
for x in list1:
print(x, end=' ')
n = int(input('请输入一个数:'))
mab(n)
- 写一个函数判断指定的数是否是回文数
123321是回文数 12321是回文数 525是回文数
def palindromic_(num: int):
for i in range(len(str(num)) // 2):
if str(num)[i] != str(num)[-i - 1]:
return False
return True
n = int(input('请输入一个数:'))
print(palindromic_(n))
- 写一个函数判断一个数是否是丑数(自己百度丑数的定义)
def ugly_num(num: int):
factor = 2
while num != 1:
if num % factor == 0:
if factor != 2 and factor != 3 and factor != 5:
return False
else:
num /= factor
else:
factor += 1
return True
n = int(input('请输入整数:'))
print(ugly_num(n))