La práctica es un ejercicio indispensable en la programación. Veamos las preguntas recurrentes y las preguntas relacionadas con las funciones.
1. Hay un par de conejos. A partir del tercer mes después del nacimiento, nacerá un par de conejos cada mes, y el
conejito dará a luz a un par de conejos cada mes después del tercer mes.
Si los conejos no son muerto, pregunte el enésimo ¿Cuál es el logaritmo del conejo en el mes?
'''
作者:lsf
time:2021.1.19
有一对兔子,从出生后的第3个月起,每个月都生一对兔子,
小兔子长到第3个月后每个月又生一对兔子,
假如兔子不死,问第n个月第兔子对数为多少?
f(n)= f(n-1)+f(n-2) {n 代表月份}
'''
def rabit_twain(time):
if time==1 or time==2:
return 1
else:
month=rabit_twain(time-1)+rabit_twain(time-2)
return month
print(rabit_twain(4))
2. Completar un sistema de blogs (requiere que los usuarios se registren, inicien sesión, publiquen blogs, eliminen blogs, agreguen blogs y consulten funciones de blogs)
'''
作者:lsf
time:2021.1.19
'''
import sys
def ring_up():
users = []
while True:
print("欢迎登录我们的用户管理系统")
print("\t\t 1、用户注册")
print("\t\t 2、用户登录")
print("\t\t 3,进入博客")
print("\t\t 4、退出系统")
choice = input("请选择您的操作:")
if choice == "1":
while True:
print("欢迎进入到用户注册页面")
username = input("请输入用户名称:")
password = input("请输入用户密码:")
confirm_password = input("请再次确认密码:")
# 数据校验
# 用户名称不能为空
if username == None or len(username) == 0:
print("对不起,用户为空")
continue
# 用户名称不能重复
flag = False
for u in users:
if u.get("username") == username:
print("对不起,该用户已经存在,请重新注册")
flag = True
break
if flag:
continue
# 密码长度不能少于3位
if len(password) < 3:
print("对不起,密码长度不能少于3位")
continue
# 两次密码不一致
if password != confirm_password:
print("两次密码不一致")
continue
# 最后如何保存用户名称和密码
user = {"username": username, "password": password}
users.append(user)
print("用户注册成功,请登录")
break
elif choice == "2":
print("欢迎进入到用户登录页面")
username = input("请输入用户名称:")
password = input("请输入用户密码:")
# 判断用户名和密码是否存在于users
for user in users:
if user["username"] == username and user.get("password") == password:
print("恭喜您,{},登录成功".format(username))
else:
print("对不起,登录失败,请重新登录~~")
elif choice == "3":
blong = []
print("登陆成功,您可以选择以下操作")
print("1,添加博客")
print("2,查询博客")
print("3,删除博客")
print("4,退出系统")
choice = int(input("请选择您的操作:"))
if choice == 1:
print("欢迎进入添加博客页面")
content = input("请输添加内容:")
prople = int(input("1,发表博客,2取消发表"))
if prople == 1:
blong.append(content)
print("添加博客成功")
continue
else:
print("取消发表成功")
continue
elif choice == 2:
print(blong)
continue
elif choice ==3:
blong.clear()
print("删除成功")
continue
else:
sys.exit()
else:
sys.exit()
ring_up()
3. Suponiendo que el usuario solo puede subir uno o dos pasos cada vez, escriba una función para determinar cuántas formas tiene el usuario para ir al enésimo paso.
'''
作者:lsf
time:2021.1.19
f(n)= f(n-1)+f(n-2)
'''
def stairs(step):
if step == 1 or step == 2:
return 1
else:
month =stairs(step - 1) +step(step - 2)
return month
print((4))
4. Encuentra el número dentro de 10000 que pueda ser divisible por 5 o 6, pero no divisible por ambos al mismo tiempo (función)
'''
作者:lsf
time:2021.1.19
f(x)=f(x-5)f(x-6)
'''
import sys
sys.setrecursionlimit(100000)
def num(n):
while n >= 0:
if n%5==0 or n%6==0 and n%30 != 0 :
print(n)
return num(n-1)
else:
return num(n-1)
print(num(1000))
5. Escriba un método para calcular la suma de todos los elementos de subíndice pares en la lista (tenga en cuenta el valor de retorno)
'''
作者:lsf
time:2021.1.19
'''
ls=[1,2,3,4,5,6,7,8,9,10,23,14,66]
l=[]
def even_number(lis):
for i in lis:
if i % 2 == 0:
l.append(i)
return sum(l)
print(even_number(ls))
6. ¿Determina si un número es primo (número primo)? ¿Cómo declarar un método?
'''
作者:lsf
time:2021.1.19
能不能被整除
'''
num=int(input("请输入一个整数:"))
def is_prime(num):
for i in range(2,num//2+1):
if num % i == 0 :
return print("%d不是质数"%num)
else:
return print("%d是质数"%num)
is_prime(num)
7. Utilice la función para completar los tres tipos de selección, burbujeo e inserción.
https://blog.csdn.net/weixin_47514459/article/details/112791073
8. Alguien ingresa al siguiente tablero de ajedrez, pide comenzar desde la esquina superior izquierda y finalmente sale de la esquina inferior derecha (requerido solo para avanzar, no hacia atrás),
pregunta: ¿Cuántos movimientos hay?
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
'''
作者:lsf
time:2021.1.19
'''
def get_count(board):
# 求棋盘横向的宽度
width = len(board[0])
# 求纵向的高度
height = len(board)
if width == 0 and height == 0:
return 0
# 棋盘只有一个位置,也就是只有一种走法
if width == 1 and height == 1:
return 1
# 将横向第一行设置为0
for i in range(width):
board[0][i] = 1
for i in range(height):
board[i][0] = 1
for i in range(1, height):
for j in range(1, width):
board[i][j] = board[i][j - 1] + board[i - 1][j]
return board[height - 1][width - 1]
b = [[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]
print(get_count(b))