Ejercicios de funciones de Python

Hay errores, bienvenido a señalarlos, los corregiré a tiempo, gracias

1. Escribe una función para encontrar la suma 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. Escribe una función para encontrar el valor máximo entre varios números.

Como se mencionó anteriormente, los parámetros posicionales variables, cuando se pasan muchos valores a la función, los parámetros posicionales adicionales se almacenan en arg en 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. Escribe una función para realizar la función de tirar los dados e imprime los puntos y la suma de N dados

El módulo aleatorio se usa aquí. El módulo aleatorio se usa para generar números aleatorios, selección aleatoria y otras operaciones.
Aquí usaremos el método randint para generar un entero aleatorio entre [n, m], que son todos intervalos cerrados.

# 由于是随机数我就不写出答案了,
# 不过大家可以把每一次的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. Escribe una función para intercambiar la clave y el valor del diccionario especificado.

He hablado sobre los conceptos básicos de la función. Al llamar a una función, los parámetros de palabras clave adicionales se guardarán en kwargs en forma de diccionario. También mencioné el método del elemento del diccionario. Si aún no sabe qué es, Puede llamar a este método directamente con un diccionario e imprimirlo.

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. Escriba una función para extraer todas las letras de la cadena especificada y luego empalme para producir una nueva cadena

# 例如:传入' 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. Escribe una función para encontrar el promedio de varios 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. Escribe una función, el valor predeterminado es encontrar el factorial de 10, también puedes encontrar el factorial de otros 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. Escriba su propia función de capitalización que puede convertir la primera letra de la cadena especificada en letras mayú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. Escriba su propia función de termina con para determinar si una cadena termina con una cadena especificada

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

10. Escriba su propia función isdigit function para determinar si una cadena consta de todos los 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. Escriba su propia función superior para convertir todas las letras minúsculas de la cadena en mayú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. Escriba su propia función rjust, especifique la longitud al crear una longitud de cadena, la cadena original se alinea a la derecha en la nueva cadena y la parte restante se llena con los 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. Escriba su propia función de índice para imprimir todos los subíndices del elemento especificado en la lista especificada. Si no hay ningún elemento especificado en la lista, devuelva -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. Escriba su propia función len para contar el número de elementos de secuencia 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. Escriba una función que implemente el en funcionamiento y determine si el elemento especificado existe en la secuencia 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. Escriba su propia función de reemplazo para convertir la cadena anterior en la cadena especificada en la nueva cadena 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. Escriba su propia función máxima para obtener el valor máximo de los elementos en la secuencia especificada. Si la secuencia es un diccionario, tome el valor máximo del diccionario

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 ejercicio se puede hacer de varias formas, creo que la forma en que lo haces es incluso más bonita que la mía.
Vamos, aprender es un proceso largo, aunque aburrido, pero no falta tanta felicidad
Aunque todavía no he encontrado esa pizca de felicidad, te creo y no la encuentro, jajaja
El "pi" de hoy está aquí, recuerda que te gusta

Supongo que te gusta

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