Exercícios de função Python

Existem erros, bem-vindo ao apontar, vou corrigi-los a tempo, obrigado

1. Escreva uma função para encontrar a soma de 1 + 2 + 3 + ... N

# 不可使用sum函数
# def get_sum(n):
#     if n == 1:
#         return 1
#     return n + get_sum(n - 1)
def get_sum(n):
    s = 0
    for i in range(1,n+1):
        s += i
    return s
print(get_sum(100))# 5050
# print(sum(range(101)))# 5050 我只是演示

2. Escreva uma função para encontrar o valor máximo entre vários números

Como mencionado anteriormente, parâmetros posicionais variáveis, quando muitos valores são passados ​​para a função, os parâmetros posicionais extras são armazenados em arg na forma de tuplas

# 不得使用max函数
def get_max(*args):
    x = args[0] 
    for arg in args:
        if arg > x: # 只要有比x大的数,就将这个数赋值给x
            x = arg 
    return x
print(get_max(1, 2, 4, 5, 6, 77, 9, 5))# 77

3. Escreva uma função para realizar a função de lançar os dados e imprima os pontos e a soma de N dados

O módulo aleatório é usado
aqui.O módulo aleatório é usado para gerar números aleatórios, seleção aleatória e outras operações.Aqui usaremos o método randint para gerar um inteiro aleatório entre [n, m], que são todos intervalos fechados.

# 由于是随机数我就不写出答案了,
# 不过大家可以把每一次的point打印一下,验证一下
def get_count(n):
    s = 0
    for i in range(n):
        point = random.randint(1, 6)
        # print(point)
        s += point
    return s
print(get_count(6))

4. Escreva uma função para trocar a chave e o valor do dicionário especificado

Já falei sobre os fundamentos da função. Ao chamar uma função, os parâmetros extras da palavra-chave serão salvos no kwargs na forma de um dicionário. Também mencionei o método do item do dicionário. Se você ainda não sabe o que é, Você pode chamar esse método diretamente com um dicionário e imprimi-lo.

def swap(**kwargs):
    # new_dict={}
    # for key in kwargs:
    #     new_dict[kwargs[key]]=key
    # return new_dict
    return {
    
    x:y for y,x in kwargs.items()}# 字典推导式
print(swap(a=1, b=2, c=3))# {1: 'a', 2: 'b', 3: 'c'}

5. Escreva uma função para extrair todas as letras na string especificada e, em seguida, junte-as para produzir uma nova string

# 例如:传入' 12a&bc12d-+' -->' abcd'
def get_ABC(word):
    new_str = ''
    for x in word:
        if x.isalpha():
            new_str += x
    return new_str
print(get_ABC('hello456world'))# helloworld

6. Escreva uma função para encontrar a média de vários números

def get_average(*args):
    i = 0
    for arg in args:
        i += arg
    return i / len(args)
print(get_average(10, 20, 30, 40))# 25.0

7. Escreva uma função, o padrão é encontrar o fatorial de 10, você também pode encontrar o fatorial de outros números

# 简易少使用递归
# def get_factorials(x=10):
#     if x == 1:
#         return 1
#     return x * get_factorials(x - 1)
def get_factorials(n=10):
    s = 1
    for i in range(1,n+1):
        s *= i
    return s
print(get_factorials(5))# 120

8. Escreva sua própria função de capitalização que pode transformar a primeira letra da string especificada em letras maiúsculas

# 例如: 'abc' -> ' Abc'' 12asd' --> ' 12asd'
def my_capitallize(word):
    i = word[0]
    if 'a' <= i <= 'z':
        new_word = word[1:]
        i = i.upper()
        return i + new_word
    return word
print(my_capitallize('123words'))# 123words
print(my_capitallize('abc'))# Abc

9. Escreva sua própria função endswith para determinar se uma string termina com uma string especificada

def my_endswith(word, factor):
	# 直接切长度为需要判断字符串长度的最后几个字符
    return word[-len(factor):] == factor
print(my_endswith('123aba', 'b'))# False
print(my_endswith('123aba', 'ba'))# True

10. Escreva sua própria função isdigit function para determinar se uma string consiste em todos os números

def my_isdigit(words):
    for word in words:
        if not'0'<=word<='9':
            return False
    return True
print(my_isdigit('12a'))# False
print(my_isdigit('12'))# True

11. Escreva sua própria função superior para transformar todas as letras minúsculas da string em maiúsculas

def my_upper(old_str):
    # a==>97,A==>65
    new_str=''
    for i in old_str:
        if 'a'<=i<='z':
            i=chr(ord(i)-32)# 先转编码值再转字符
            new_str += i
        else:
            new_str += i
    return new_str
print(my_upper('123hello'))# 123HELLO

12. Escreva sua própria função rjust, especifique o comprimento ao criar um comprimento de string, a string original é alinhada à direita na nova string e a parte restante é preenchida com os caracteres especificados

def my_rjust(word,long,fillchar):# 原字符串,长度,填充字符
    long_char = fillchar*(long-len(word))
    return long_char + word
print(my_rjust('abc', 7,'!'))# !!!!abc

13. Escreva sua própria função de índice para imprimir todos os subscritos do elemento especificado na lista especificada. Se não houver nenhum elemento especificado na lista, retorne -1

def my_index(lists,m):
    if m in lists:
        for i,j in enumerate(lists):# 带下表的遍历
            if j == m:
                print(i,end=',')
        print()
    else:
        print('-1')

my_index([1, 2, 45, 'abc', 1, '你好', 1, 0],1)   # 0,4,6,
my_index(['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'],'赵云')  # 0,4
my_index(['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'],'关羽')  # -1

14. Escreva sua própria função len para contar o número de elementos de sequência especificados

def my_len(sequence):
    count = 0
    for x in sequence:
        count += 1
    return count
b = my_len('hello w')
c = my_len([1, 3, 5, 6])
d = my_len((1, 34, 'a', 45, 'bbb'))
print(b,c,d)  # 7 4 5

15. Escreva uma função que implemente a operação in e determine se o elemento especificado existe na sequência especificada

def my_in(a,b):
    for x in a:
        if x == b:
            return True
    return False
print(my_in((12, 90, 'abc'), '90'))# False
print(my_in((12, 90, 'abc'), 90))# True

16. Escreva sua própria função de substituição para converter a string antiga na string especificada para a nova string especificada

def my_replace(all_str, old_str, new_str):
    # 先将原字符串按旧字符串分割成一个列表
    # 再用新字符串讲这个列表进行分割
    return new_str.join(all_str.split(old_str))
print(my_replace('how do you do', 'o', '*'))# h*w d* y*u d*

17. Escreva sua própria função max para obter o valor máximo dos elementos na sequência especificada. Se a sequência for um dicionário, use o valor máximo do dicionário

def my_max(seq):
    # if type(seq) == dict:
    if isinstance(seq,dict):#看对象是否通过dict类创建出来的
        seq = list(seq.values())
    x = seq[0]
    for i in seq:
        if i > x:
            x = i
    return x
x = my_max([-7, -12, -1, -9])
y = my_max('abcdpzasdz')
z = my_max({
    
    '小明':90, '张三': 76, '路飞':30, '小花': 98})
print(x,y,z)# -1 z 98

Cada exercício pode ser feito de várias maneiras, acredito que a maneira como você o faz é ainda mais bonita que a minha
Vamos lá, aprender é um processo longo, embora enfadonho, mas essa felicidade não falta
Embora eu não tenha encontrado aquele pouquinho de felicidade ainda, eu acredito em você e não consigo encontrar, hahaha
O "pi" de hoje está aqui, lembre-se de gostar

Acho que você gosta

Origin blog.csdn.net/hmh4640219/article/details/112322871
Recomendado
Clasificación