Day 09 函数基础作业
1. 编写一个函数,求1+2+3+...+N
def num_sum(n):
sum_num = 0
for num in range(n+1):
sum_num += num
return sum_num
#例子:求1+2+...100
print(num_sum(100)) # 5050
2. 编写一个函数,求多个数中的最大值
def max_num(*nums):
max_n = nums[0]
for num in nums:
if num > max_n:
max_n = num
return max_n
# 例子:求2, 36, 67, 99, 33, 44中最大值
print(max_num(2, 36, 67, 99, 33, 44)) # 99
3. 编写一个函数,实现摇骰子的功能,打印n个骰子的点数和
def sum_dice(n):
import random
sum_num = 0
while n:
num = random.randint(1, 6)
print(num) #打印出每次摇骰子的值,便于理解
sum_num += num
n -= 1
return sum_num
# 例子:打印投6次骰子的和
print(sum_dice(6)) # 随机
4. 编写一个函数,交换指定字典的key和value。
def change_num(dict_a):
dict_b = {}
for dict_key in dict_a:
dict_b[dict_a[dict_key]] = dict_key
return dict_b
#例子
dict1 = {"a": 1, "b": 2, "c": 3}
print(change_num(dict1)) # {1: "a", 2: "b", 3: "c"}
5. 编写一个函数,提取指定字符串中的所有的字母,然后拼接在一起后打印出来
# method_one
def joint_str(str_a):
str_print = ""
for str_x in str_a:
if str_x.isalpha():
str_print += str_x
return str_print
# method_two
def joint_str2(str_a):
str_print2 = ""
for str_x2 in str_a:
if ("a" <= str_x2 <= "z") or ("A" <= str_x2 <= "Z"):
str_print2 += str_x2
return str_print2
# 例子:
a = "21werty3abc"
print(joint_str(a)) # wertyabc
print(joint_str2(a))
6. 写一个函数,求多个数的平均值
def average_nums(*n):
average_num = sum(n) / len(n)
return average_num
# 例子:求 5, 10, 15的平均值
print(average_nums(5, 10, 15)) # 10.0
7. 写一个函数,默认求10的阶层,也可以求其他数的阶层
def factorial(n):
factorial_n = 1
for num in range(1, n+1):
factorial_n *= num
return factorial_n
# 例子:求10的阶乘
print(factorial(10)) # 3628800
8. 写一个函数,可以对多个数进行不同的运算(所有运算都用上)
def operations(mark, num1, *nums):
sum_nums = num1
for num in nums:
if mark == "+":
sum_nums += num
elif mark == "-":
sum_nums -= num
elif mark == "*":
sum_nums *= num
elif mark == "/":
sum_nums /= num
elif mark == "//":
sum_nums //= num
elif mark == "**":
sum_nums **= num
return sum_nums
# 例子:10, 2, 2 之间用+ - * / ** // 运算
print(operations("+", 10, 2, 2)) # 14
print(operations("-", 10, 2, 2)) # 6
print(operations("*", 10, 2, 2)) # 40
print(operations("/", 10, 2, 2)) # 2.5
print(operations("**", 10, 2, 2)) # 10000
print(operations("//", 10, 2, 2)) # 2
9.写一个函数,求指定列表中,指定的元素的个数
def list_count(list_x, n):
counts_num = list_x.count(n)
return counts_num
# 例子:a = [1, 2, 1, 2, 1, 2, 3, 4, 1, 1, 1] 求1的个数
a = [1, 2, 1, 2, 1, 2, 3, 4, 1, 1, 1]
print(list_count(a, 1)) # 6
10.写一个函数,获取指定列表中指定元素对应的下标(如果有多个,一起返回)
def index_count(list_x, n):
list_index = []
for num in range(len(list_x)):
if list_x[num] == n:
list_index.append(num)
return list_index
# 例子:a = [1, 2, 2, 1, 2, 3, 4, 1, 1] 求1的下标
a = [1, 2, 2, 1, 2, 3, 4, 1, 1]
print(index_count(a, 1)) #[0, 3, 7, 8]
网友评论