day09、作業(yè) 2019-01-04

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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容