day 8-関数-homework

3430 ワード

1.1つの関数を編纂して、1+2+3…+を求めますN
def sum2(maxinum:int): #        
    list1 = [x for x in range(1,maxinum+1)]
    sum2 = sum(list1)
    return sum2
print(sum2(5))

result:
15

2.1つの関数を作成し、複数の数の最大値を求める
def get_maxinum(*seq): #*seq    
    list1 = list(seq)
    list1.sort()
    return list1[-1]

print(get_maxinum(1,5,2,1,90,9))

result:
90

3.関数を作成し、色を振る機能を実現し、n個のサイコロの点数と
import random
def play_dice(num):
    list1 = []
    count = 0
    for n in range(num):
        number = random.randint(1,6)
        list1.append(number)
        count += number
    print('       :',list1)
    return count
print('      : %d' % play_dice(6))

result:
       : [3, 1, 3, 5, 4, 2]
      : 18

4.指定した辞書のkeyとvalueを交換する関数を作成します.例:{'a':1,'b':2,'c':3}--->{1:'a',2:'b',3:'c'}
def exchange_key_value(dict1):
    dict2 = {}
    for n in dict1:
        dict2[dict1[n]] = n
    return dict2
dict1 = {'a':1,'b':2,'c':3}
print(exchange_key_value(dict1))

result:
{1: 'a', 2: 'b', 3: 'c'}

5.1つの関数を作成し、3つの数の中で最大値
def maxinum2(list1):
    list1.sort()
    return list1[-1]
list1 = [20,8,15]
print(maxinum2([20,8,15]))

result:
20

6.関数を作成し、指定した文字列のすべてのアルファベットを抽出し、つなぎ合わせて印刷します.例えば、'12 a&bc 12 d-'-->abcd'の印刷
def get_alphabet(str1:str):
    str2 = ''
    for item in str1[:]:
        if item <= 'z' and item >= 'a' or item <= 'Z' and item >= 'A':
            str2 += item
    return str2
str2 = '12a&bc12d--'
print(get_alphabet(str2))

result:
abcd

7.1つの関数を書いて、複数の数の平均値を求める
def avarage(*seq): #*seq                           ,     ,             
    sum1 = 0
    for item in seq[:]:
        sum1 += item
    return sum1/len(seq)
print(avarage(1,5,2,6,9))

result:
4.6

8.1つの関数を書いて、デフォルトは10の階乗を求めて、その他の数の階乗を求めることができます
def factorial(num=10):
    count = 1
    for n in range(1,num+1):
        count *= n
    return count
print(factorial())
print(factorial(11))

result:
3628800
39916800

9.複数の数に対して異なる演算が可能な関数を書く
def operation(str1,*number):
    count = 0
    count2 = 1
    if str1 == '+':
        for n in number[:]:
            count += n
        return count
    elif str1 == '-':
        count = number[0]
        for n in number[1:]:
            count -= n
        return count
    elif str1 == '*':
        for n in number[:]:
            count2 *= n
        return count2
    elif str1 == '/':
        count2 = number[0] / number[1]
        return count2
    elif str1 == '**':
        count2 = number[0]**number[1]
        return count2
    elif str1 == '//':
        count2 = number[0] // number[1]
        return count2
    elif str1 == '%':
        count2 = number[0] % number[1]
        return count2
    else:
        print('        ')
print(operation('+',2,3,5,6))
print(operation('-',2,3,5,6))
print(operation('*',2,3,5,2))
print(operation('/',2,3))
print(operation('//',2,3))
print(operation('**',2,3))
print(operation('%',2,3))

result:
16
-12
60
0.6666666666666666
0
8
2