1. 編寫?個函數(shù),求1+2+3+...+N
解:
def sum_plus():
"""求 1 到 N 的累加"""
n = int(input('請輸入一個正整數(shù):'))
sum1 = 0
i = 0
while i <= n:
sum1 += i
i += 1
print('由 1 到 N 的累加值為:')
return sum1
print(sum_plus())
運行結(jié)果:
請輸入一個正整數(shù):10
由 1 到 N 的累加值為:
55
2. 編寫?個函數(shù),求多個數(shù)中的最?值
解:
def max_plus(*nums1, **nums2):
""求多個數(shù)中的最?值"""
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('這幾個數(shù)里最大的數(shù)為:', max1)
return max1
print(max_plus(1, 2, 3, 4, 5, a=6, d=7, c=8))
運行結(jié)果:
這幾個數(shù)里最大的數(shù)為:8
8
3. 編寫?個函數(shù),實現(xiàn)搖??的功能,打印n個??的點數(shù)和
解:
def shai_zi():
"""打印n個色子的點數(shù)和"""
print('已經(jīng)進(jìn)入擲色子游戲。')
import random # 導(dǎo)入 random 模塊。
sum1 = 0
item = 0
n = int(input('請輸入色子數(shù):'))
while n > 0:
item += 1
num1 = random.randint(1, 6) # 產(chǎn)生一個 1 ~ 6 的隨機整數(shù)。
print('第 %d 個色子的點數(shù)為:' % item, num1)
sum1 += num1
n -= 1
print('所有色子的點數(shù)和為:')
return sum1
print(shai_zi())
運行結(jié)果:
已經(jīng)進(jìn)入擲色子游戲。
請輸入色子數(shù):3
第 1 個色子的點數(shù)為: 6
第 2 個色子的點數(shù)為: 6
第 3 個色子的點數(shù)為: 6
所有色子的點數(shù)和為:
18
4. 編寫?個函數(shù),交換指定字典的key和value。
例如:{'a':1, 'b':2, 'c':3} ---> {1:'a', 2:'b', 3:'c'}
解:
# 遍歷字典的時候,字典的長度不能發(fā)生改變,不然會報錯。
# 如果遍歷字典后,對字典的操作會改變字典長度,那就不要直接遍歷字典,而是遍歷字典的 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))
運行結(jié)果:
原字典為:
{'a': 1, 'b': 2, 'c': 3}
交換后的字典為:
{1: 'a', 2: 'b', 3: 'c'}
5. 編寫?個函數(shù),求三個數(shù)中的最?值
解:
def max_plus():
"""求三個數(shù)中的最?值"""
print('請輸入三個數(shù):')
i = 0
list1 = []
while i < 3:
i += 1
num1 = int(input('第 %d 個數(shù):' % i))
list1.append(num1)
j = 0
max1 = list1[j]
while j < len(list1):
num2 = list1[j]
if max1 < num2:
max1 = num2
j += 1
print('這三個數(shù)里,最大的值為:')
return max1
print(max_plus())
運行結(jié)果:
請輸入三個數(shù):
第 1 個數(shù):2
第 2 個數(shù):4
第 3 個數(shù):6
這三個數(shù)里,最大的值為:
6
6. 編寫?個函數(shù),提取指定字符串中的所有的字?,然后拼接在?起后打印出來
例如:'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阿黃')
運行結(jié)果:
字符串中所有的字母有: adcADC
7. 寫?個函數(shù),求多個數(shù)的平均值
解:
def pjz_plus(*tuple1, **dict1):
"""求多個數(shù)的平均值"""
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 個數(shù)字,' % num1, '平均值為:', sum1 / num1)
pjz_plus(1, 2, 3, a=4, b=5)
運行結(jié)果:
一共有 5 個數(shù)字, 平均值為: 3.0
8. 寫?個函數(shù),默認(rèn)求10的階層,也可以求其他數(shù)的階層
解:
def jc_plus(n=10):
"""默認(rèn)求10的階層,也可以求其他數(shù)的階層"""
i = 0
num1 = 1
while i < n:
i += 1
num1 *= i
print(' %d 的階乘為:' % n)
return num1
print(jc_plus())
print(jc_plus(5))
運行結(jié)果:
10 的階乘為:
3628800
5 的階乘為:
120
9. 寫?個函數(shù),可以對多個數(shù)進(jìn)?不同的運算
例如: operation('+', 1, 2, 3) ---> 求 1+2+3的結(jié)果
operation('-', 10, 9) ---> 求 10-9的結(jié)果
operation('', 2, 4, 8, 10) ---> 求 24810的結(jié)果
解:
def ys_plus(*tuples):
"""可以對多個數(shù)進(jìn)行不同的運算"""
chr1, *nums = tuples
if chr1 == '+':
num1 = 0
i = 0
while i < len(nums):
num1 += nums[i]
i += 1
print('加法運算結(jié)果為:', num1)
elif chr1 == '-':
num2 = nums[0] * 2
for i in nums:
num2 -= i
print('減法運算結(jié)果為:', num2)
elif chr1 == '*':
num3 = 1
for i in nums:
num3 *= i
print('乘法運算結(jié)果為:', num3)
elif chr1 == '/':
num4 = nums[0] ** 2
i = 0
while i < len(nums):
num4 /= nums[i]
i += 1
print('除法運算結(jié)果為:', num4)
else:
print('暫不支持此運算。')
ys_plus('+', 2, 4, 6)
ys_plus('-', 2, 4, 6)
ys_plus('*', 2, 4, 6)
ys_plus('/', 2, 4, 0.1)
運行結(jié)果:
加法運算結(jié)果為: 12
減法運算結(jié)果為: -8
乘法運算結(jié)果為: 48
除法運算結(jié)果為: 5.0