1. 编写⼀个函数,求1+2+3+...+N
解:
def sum_plus():
"""求 1 到 N 的累加"""
n = int(input('请输入一个正整数:'))
sum1 = 0
i = 0
while i <= n:
sum1 += i
i += 1
print('由 1 到 N 的累加值为:')
return sum1
print(sum_plus())
运行结果:
请输入一个正整数:10
由 1 到 N 的累加值为:
55
2. 编写⼀个函数,求多个数中的最⼤值
解:
def max_plus(*nums1, **nums2):
""求多个数中的最⼤值"""
i = 0
max1 = nums1[i]
while i < len(nums1):
num1 = nums1[i]
if max1 < num1:
max1 = num1
i += 1
for j in nums2:
num2 = int(nums2[j])
if max1 < num2:
max1 = num2
print('这几个数里最大的数为:', max1)
return max1
print(max_plus(1, 2, 3, 4, 5, a=6, d=7, c=8))
运行结果:
这几个数里最大的数为:8
8
3. 编写⼀个函数,实现摇⾊⼦的功能,打印n个⾊⼦的点数和
解:
def shai_zi():
"""打印n个色子的点数和"""
print('已经进入掷色子游戏。')
import random # 导入 random 模块。
sum1 = 0
item = 0
n = int(input('请输入色子数:'))
while n > 0:
item += 1
num1 = random.randint(1, 6) # 产生一个 1 ~ 6 的随机整数。
print('第 %d 个色子的点数为:' % item, num1)
sum1 += num1
n -= 1
print('所有色子的点数和为:')
return sum1
print(shai_zi())
运行结果:
已经进入掷色子游戏。
请输入色子数:3
第 1 个色子的点数为: 6
第 2 个色子的点数为: 6
第 3 个色子的点数为: 6
所有色子的点数和为:
18
4. 编写⼀个函数,交换指定字典的key和value。
例如:{'a':1, 'b':2, 'c':3} ---> {1:'a', 2:'b', 3:'c'}
解:
# 遍历字典的时候,字典的长度不能发生改变,不然会报错。
# 如果遍历字典后,对字典的操作会改变字典长度,那就不要直接遍历字典,而是遍历字典的 copy 。
def change_plus(dict1: dict):
for key in dict1.copy:
value = dict1[key]
dict1[value] = key
return dict1
def change(dict1=dict):
"""交换字典的 key 和 value 值"""
print('原字典为:\n', dict1)
dict2 = {}
for i in dict1:
str1 = dict1[i]
dict2[str1] = i
print('交换后的字典为:')
return dict2
new_dict1 = {'a': 1, 'b': 2, 'c': 3}
print(change(new_dict1))
运行结果:
原字典为:
{'a': 1, 'b': 2, 'c': 3}
交换后的字典为:
{1: 'a', 2: 'b', 3: 'c'}
5. 编写⼀个函数,求三个数中的最⼤值
解:
def max_plus():
"""求三个数中的最⼤值"""
print('请输入三个数:')
i = 0
list1 = []
while i < 3:
i += 1
num1 = int(input('第 %d 个数:' % i))
list1.append(num1)
j = 0
max1 = list1[j]
while j < len(list1):
num2 = list1[j]
if max1 < num2:
max1 = num2
j += 1
print('这三个数里,最大的值为:')
return max1
print(max_plus())
运行结果:
请输入三个数:
第 1 个数:2
第 2 个数:4
第 3 个数:6
这三个数里,最大的值为:
6
6. 编写⼀个函数,提取指定字符串中的所有的字⺟,然后拼接在⼀起后打印出来
例如:'12a&bc12d--' ---> 打印'abcd'
解:
def qu_zi_mu(string1):
"""取出所有的字母,然后拼接在⼀起后打印出来"""
str2 = ''
for str1 in string1:
if ord('a') <= ord(str1) <= ord('z'):
str2 += str1
elif ord('A') <= ord(str1) <= ord('Z'):
str2 += str1
print('字符串中所有的字母有:', str2)
return str2
# 97 - 122;65 - 90
qu_zi_mu('adc123+-*&|^ADC阿黄')
运行结果:
字符串中所有的字母有: adcADC
7. 写⼀个函数,求多个数的平均值
解:
def pjz_plus(*tuple1, **dict1):
"""求多个数的平均值"""
i = 0
k = 0
sum1 = 0
while i < len(tuple1):
sum1 += int(tuple1[i])
i += 1
for j in dict1:
x = dict1[j]
sum1 += x
k += 1
num1 = i + k
print('一共有 %d 个数字,' % num1, '平均值为:', sum1 / num1)
pjz_plus(1, 2, 3, a=4, b=5)
运行结果:
一共有 5 个数字, 平均值为: 3.0
8. 写⼀个函数,默认求10的阶层,也可以求其他数的阶层
解:
def jc_plus(n=10):
"""默认求10的阶层,也可以求其他数的阶层"""
i = 0
num1 = 1
while i < n:
i += 1
num1 *= i
print(' %d 的阶乘为:' % n)
return num1
print(jc_plus())
print(jc_plus(5))
运行结果:
10 的阶乘为:
3628800
5 的阶乘为:
120
9. 写⼀个函数,可以对多个数进⾏不同的运算
例如: operation('+', 1, 2, 3) ---> 求 1+2+3的结果
operation('-', 10, 9) ---> 求 10-9的结果
operation('', 2, 4, 8, 10) ---> 求 24810的结果
解:
def ys_plus(*tuples):
"""可以对多个数进行不同的运算"""
chr1, *nums = tuples
if chr1 == '+':
num1 = 0
i = 0
while i < len(nums):
num1 += nums[i]
i += 1
print('加法运算结果为:', num1)
elif chr1 == '-':
num2 = nums[0] * 2
for i in nums:
num2 -= i
print('减法运算结果为:', num2)
elif chr1 == '*':
num3 = 1
for i in nums:
num3 *= i
print('乘法运算结果为:', num3)
elif chr1 == '/':
num4 = nums[0] ** 2
i = 0
while i < len(nums):
num4 /= nums[i]
i += 1
print('除法运算结果为:', num4)
else:
print('暂不支持此运算。')
ys_plus('+', 2, 4, 6)
ys_plus('-', 2, 4, 6)
ys_plus('*', 2, 4, 6)
ys_plus('/', 2, 4, 0.1)
运行结果:
加法运算结果为: 12
减法运算结果为: -8
乘法运算结果为: 48
除法运算结果为: 5.0
网友评论