实训-1day
Python 字符串与运算符
1、程序设计
题目一:凯撒密码是古罗马凯撒大帝用来对军事情报进行加密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列该字符后面第三个字符,对应关系如下:
- 原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
- 密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
- 原文字符P,其密文字符C满足如下条件:
- C = ( P + 3 ) mod 26
- 解密方法反之,满足:
- P = ( C – 3 ) mod 26
- 请输入一个字符串数据,输出其加密字符串,将输出的加密字符串进行解密后再次输出。
original = input()
password= ' ' # 创建一个字符串
for item in original:
if item.isalpha(): # 返回是否是字母
if item in ['x','y','z','X','Y','Z']: # 这是最后三个边界
password = password + chr(ord(item) - 23)
else:
password = password + chr(ord(item)+ 3) # 直接取之后的第三个字符就行
else: # 特殊符号or空格
password= password + item # 字符串可以直接相加
print (password)
运行结果如图所示:
2)判断水仙花数
- 水仙花数是一个3位数,它的每位数字的3次幂之和等于它本身,例如,153、370就是一个水仙花数。
- 例如,153、370就是一个水仙花数。
- 编写程序,判断用户输入的3位数是否为水仙花数。
- 注:使用关系运算符查看输出结果:若输出为Ture,则表明为水仙花数;若输出为False,则不是水仙花数。
num3= int(input("请输入一个三位数:"))
hundreds_place = int(num3 //100 %10) #百位
ten_place = int(num3/10%10) # 十位
one_place= int(num3% 10) # 个位
if hundreds_place ** 3 + ten_place ** 3 + one_place ** 3 == num3:
print("Ture")
else:
print("False")
运行结果如下图所示:
3)计算德邦物流车承载数
已知德邦物流的车厢长4.2米,宽1.9米,快递的箱子长是0.5米,宽是0.5米,高是0.3米,那么这个物流车能装多少专业规格的箱子。
计算的公式是:箱子总数(取整数)= (物流车厢宽/快递箱宽)*(物流车厢长/快递箱长)*(物流车厢高/快递箱高)
import math
# 已知德邦物流的车厢和快递箱尺寸
truck_length = 4.2
truck_width = 1.9
truck_height = 2.1
box_length = 0.5
box_width = 0.5
box_height = 0.3
# 计算能装多少专业规格的箱子
total_boxes = math. floor((truck_width / box_width) * (truck_length / box_length) * (truck_height / box_height))
print(f"这个物流车能装{total_boxes}个专业规格的箱子。”)
运行结果如图所示:
4)编写一个计算年份是否是闰年的程序。
- 编程要求 计算年份是否是闰年,如果是闰年输出True 否则输出False。
- 闰年:能被4整除但不能被100整除 或 能被400整除
- 测试说明
- 测试输入:4981 预期输出: False
- 测试输入:2020 预期输出: True
# 判断计算年份是否是闰年
year = eval(input("请输入年份:"))
if(year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
print("true")
else:
print("false")
5)根据提示,接收用户输入的字符串。
- 若字符串不是数字字符串,提示不是数字;若字符串x是回文数,显示x是回文数;若字符串x不是回文数,显示x不是回文数。
- 测试输入:请输入字符串12321;预期输出:12321是回文数 测试输入:请输入字符串12345;预期输出:12345不是回文数
- 测试输入:请输入字符串12a;预期输出:不是数字
回文数
x=input("请输入一个数字:")
#代码开始
if x. isnumeric() == False:
print("不是数字");
elif x == x[ ::- 1]:
print("{}是回文数".format(x));
else:
print("}不是回文数".format(x));
代码如下图所示:
6)工资计算
- 已知某公司有一批销售员工,其底薪为2000元,员工销售额与提成比例如下:
- (1)当销售额<=3000时,没有提成;
- (2)当3000<销售额<=7000时,提成10%;
- (3)当7000<销售额<=10000时,提成15%;
- (4)当销售额>10000时,提成20%。
- 要求编写程序,通过输入员工的销售额,计算出其薪水总额并输出。
salary = 2000
sale = int(input("请输入销售额:”))
if sale % 1000 == 0: #计算销售系数
k=sale/1000
else:
k=sale/1000+1
if k>3 and k <= 7: #计算薪水
salary += sale*0.1
elif k>7 and k <= 10:
salary += sale*0.15
elif k>10:
salary += sale*0.2
print("薪水总计:{}".format(salary))
运行图:
7)编写一个能将百分制成绩转换为等级制成绩的程序。
- 编程要求 根据提示,在右侧编辑器补充代码,将百分制成绩转换为等级制成绩。 (90<=score<=100:A); (80<=socre<90:B); (70<=socre<80:C); (60<=socre<70:D); (score<60:E)
- 测试说明
- 测试输入:90.5; 预期输出:A
- 测试输入:82;预期输出:B
# 百分制成绩转换为等级制成绩
a=float(input('请输入百分制绩: '))
if 90 <= a <= 100:
print('A')
elif 80 <= a<90:
print('B')
elif 70 <= a<80:
print('C')
elif 60 <= a<70:
print('D')
elif a < 60:
print('E')
结果如下图: