Python基础2
用户登陆程序需求:
1. 输入用户名和密码;
2. 判断用户名和密码是否正确?
name='root' passwd='westos' 3. 为了防止暴力破解, 登陆仅有三次机会, 如果
超过三次机会, 报错提示;
# 设置用户名和密码
correct_username = 'root'
correct_password = 'westos'
# 初始化登录尝试次数
login_attempts = 0
# 循环进行登录尝试
while login_attempts < 3:
# 用户输入用户名和密码
username = input("请输入用户名: ")
password = input("请输入密码: ")
# 检查用户名和密码是否正确
if username == correct_username and password == correct_password:
print("登录成功!欢迎进入系统。")
break
else:
print("用户名或密码错误,请重试。")
login_attempts += 1
# 检查是否超过登录尝试次数
if login_attempts == 3:
print("登录尝试次数超过限制。请稍后再试。")
base64编解码小脚本
import base64
def base64_encode(text):
# 将文本编码为 Base64 字符串
encoded_bytes = base64.b64encode(text.encode('utf-8'))
encoded_str = encoded_bytes.decode('utf-8')
return encoded_str
def base64_decode(encoded_str):
# 将 Base64 字符串解码为原始文本
decoded_bytes = base64.b64decode(encoded_str.encode('utf-8'))
decoded_text = decoded_bytes.decode('utf-8')
return decoded_text
if __name__ == "__main__":
while True:
print("请选择操作:")
print("1. 编码为Base64")
print("2. 解码Base64")
print("3. 退出")
choice = input("请输入操作编号: ")
if choice == "1":
text_to_encode = input("请输入要编码的文本: ")
encoded_result = base64_encode(text_to_encode)
print("Base64 编码结果: ", encoded_result)
elif choice == "2":
encoded_text = input("请输入要解码的Base64字符串: ")
decoded_result = base64_decode(encoded_text)
print("Base64 解码结果: ", decoded_result)
elif choice == "3":
print("退出程序")
break
else:
print("无效的操作,请重新输入。")
写以下的一个程序:猜数字(1-100),5次机会
import random
# 生成一个1到100之间的随机数字
target_number = random.randint(1, 100)
# 初始化剩余机会次数
attempts = 5
print("欢迎参加猜数字游戏!我已经选好了一个1到100之间的数字。")
# 开始游戏循环
while attempts > 0:
# 获取玩家猜测的数字
guess = input("请输入你猜的数字(1-100之间):")
# 检查输入是否为有效数字
if not guess.isdigit():
print("请输入有效的数字!")
continue
guess = int(guess)
# 检查玩家猜测是否正确
if guess == target_number:
print("恭喜你,猜对了!你赢了游戏。")
break
elif guess < target_number:
print("太小了,再试试。")
else:
print("太大了,再试试。")
# 减少剩余机会次数
attempts -= 1
print(f"剩余机会次数: {attempts}")
# 游戏结束
if attempts == 0:
print(f"很抱歉,你用完了所有机会。正确答案是{target_number}。游戏结束。")
求两个数的最大公约数和最小公倍数
import math
# 输入两个整数
num1 = int(input("输入第一个整数:"))
num2 = int(input("输入第二个整数:"))
# 使用math模块的gcd函数来计算最大公约数
gcd_result = math.gcd(num1, num2)
# 最小公倍数可以通过公式 lcm(a, b) = |a * b| / gcd(a, b) 来计算
lcm_result = abs(num1 * num2) // gcd_result
# 输出结果
print(f"{num1} 和 {num2} 的最大公约数是 {gcd_result}")
print(f"{num1} 和 {num2} 的最小公倍数是 {lcm_result}")
实现int sqrt(int x)函数,计算并返回x的平方根,其中x是非负整数,由于返回类型是整数,结果只保留整数部分,小数部分被舍去
num = float(input('请输入一个正整数:'))
#输入一个数
num_sqrt = num ** 0.5
#根据平方根公式定义变量
print(f'{num}的平方根为{num_sqrt}')
#输出结果
求解一元二次方程
import math
def solve_quadratic(a, b, c):
# 计算判别式
discriminant = b**2 - 4*a*c
# 判别式小于0,方程无实数根
if discriminant < 0:
return "方程无实数根"
# 判别式等于0,方程有一个实数根
elif discriminant == 0:
x = -b / (2*a)
return f"方程有一个实数根:x = {x}"
# 判别式大于0,方程有两个实数根
else:
x1 = (-b + math.sqrt(discriminant)) / (2*a)
x2 = (-b - math.sqrt(discriminant)) / (2*a)
return f"方程有两个实数根:x1 = {x1}, x2 = {x2}"
# 从用户输入获取方程的系数
a = float(input("请输入二次项系数 (a):"))
b = float(input("请输入一次项系数 (b):"))
c = float(input("请输入常数项 (c):"))
# 调用求解函数并打印结果
result = solve_quadratic(a, b, c)
print(result)