- 实验目的:
- 掌握python的程序控制结构
- 掌握python的流程控制结构的几种用法
- 掌握python的编程技巧,学会用程序逻辑解决需求
二、实验内容:
说明:基础题为必做题,提高题为选做题
1.(基础题) 从控制台获取4个整数,通过条件判断,求出最大值打印输出
程序运行样式如下:
程序代码:
第一种方法:
#include <stdio.h>
int main() {
int num1, num2, num3, num4;
// 从控制台获取4个整数
printf("请输入第一个整数: ");
scanf("%d", &num1);
printf("请输入第二个整数: ");
scanf("%d", &num2);
printf("请输入第三个整数: ");
scanf("%d", &num3);
printf("请输入第四个整数: ");
scanf("%d", &num4);
// 通过条件判断求出最大值
int max = num1;
if (num2 > max) {
max = num2;
}
if (num3 > max) {
max = num3;
}
if (num4 > max) {
max = num4;
}
// 打印输出最大值
printf("最大值是: %d\n", max);
return 0;
}
第二种方法:
def get_max_value():
# 从控制台获取4个整数
numbers = []
for i in range(4):
num = int(input(f"请输入第{i+1}个整数: "))
numbers.append(num)
# 通过内置函数 max 求出最大值
max_value = max(numbers)
# 打印输出最大值
print(f"最大值是: {max_value}")
# 调用函数执行
get_max_value()
2.(基础题) 控制台输入一个四位数的数字,判断是否满足,百位数字大于千位数字,十位数字大于百位数字,个位数字是其他三位数字的和,如果满足,则是幸运数字,否则不是!
程序运行样式如下:
程序代码:
def is_lucky_number():
# 从控制台输入一个四位数的数字
number = input("请输入一个四位数的数字: ")
# 确保输入的是一个四位数
if len(number) != 4 or not number.isdigit():
print("请输入一个有效的四位数!")
return
# 将输入的字符串转换为整数
number = int(number)
# 获取千位、百位、十位和个位的数字
qian = number // 1000
bai = (number // 100) % 10
shi = (number // 10) % 10
ge = number % 10
# 判断条件
if bai > qian and shi > bai and ge == qian + bai + shi:
print("是幸运数字")
else:
print("不是幸运数字")
# 调用函数执行
is_lucky_number()
3、 (基础题) 显示输出1~100之间 7的倍数或个位数是7的数字。每5个一行输出所有数字。
程序代码:
def print_special_numbers():
count = 0
for i in range(1, 101):
if i % 7 == 0 or i % 10 == 7:
print(f"{i:3}", end=" ")
count += 1
if count % 5 == 0:
print() # 换行
# 如果最后一行的数字个数不足5个,打印换行
if count % 5 != 0:
print()
# 调用函数执行
print_special_numbers()
4、 (基础题)实现用户登录信息匹配,用户登录需求:
- 登录:输入用户名和密码;
- 判断用户名和密码是否正确(name='Jenny',passwd= '1368'),输入错误重新输入;
- 登录仅有三次机会,超过3次退出。程序运行样式如下:
程序代码:
def user_login():
name = 'Jenny'
passwd = '1368'
chances = 3
while chances > 0:
input_name = input("请输入用户名:")
input_passwd = input("请输入密码:")
if input_name == name and input_passwd == passwd:
print("登录成功!")
break
else:
chances -= 1
if chances > 0:
print(f"用户名或密码错误,您还有{chances}次尝试机会。")
else:
print("超过登录次数限制,退出登录。")
break
user_login()
(选做题) 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。试输入一个数,并求出对应的数字。
程序代码:
def encrypt(num):
# 分解出每一位数字
num_list = [int(d) for d in str(num)]
# 加密规则:每位数字加上5,取余数
encrypted_num = [(d + 5) % 10 for d in num_list]
# 交换位置
encrypted_num[0], encrypted_num[3] = encrypted_num[3], encrypted_num[0]
encrypted_num[1], encrypted_num[2] = encrypted_num[2], encrypted_num[1]
return encrypted_num
def decrypt(encrypted_num):
# 交换位置恢复
num_list = encrypted_num.copy()
num_list[0], num_list[3] = num_list[3], num_list[0]
num_list[1], num_list[2] = num_list[2], num_list[1]
# 解密规则:每位数字减去5,取余数
decrypted_num = [(d - 5) % 10 for d in num_list]
# 将数字合并为整数
decrypted_num_int = int(''.join(map(str, decrypted_num)))
return decrypted_num_int
num = int(input("请输入一个四位整数:"))
encrypted_num = encrypt(num)
print(f"加密后的数字为:{encrypted_num}")
decrypted_num = decrypt(encrypted_num)
print(f"解密后的数字为:{decrypted_num}")