第1关:图像编码
# 请在此添加代码
########## Begin ##########
from PIL import Image #导入PIL库中的Image模块
im = Image.new("RGB", (128, 128), "red") #新建图像
#im.show() #显示图像
im.save("/data/workspace/myshixun/src/step1/pic2/pic2.jpg") #保存图像文件
#以下代码是查看保存下来的图像
im2 = Image.open("pic2.jpg") #打开图像文件
im2.show() #显示原图
########## End ##########
第2关:简单字符加密
s = input("请输入明文:")
n = int(input("请输入移位数:"))
# 请在此添加代码
########## Begin ##########
t = "" # t 表示密文
for c in s: # 对明文中的每个字符都进行移位的操作
t=t+chr(ord(c)+n)
########## End ##########
print(f"原文为:{s} 密文为:{t}")
第3关:图像数据处理程序
from PIL import Image
from matplotlib import pyplot as plt
# 生成红色图像
image_1 = Image.new("RGB", (300, 300), "red")
plt.subplot(2, 2, 1)
plt.imshow(image_1)
# 生成绿色图像(使用十六进制表示)
image_2 = Image.new("RGB", (100, 200), "#00FF00")
plt.subplot(2, 2, 2)
plt.imshow(image_2)
# 生成绿色图像(使用RGB表示)
image_3 = Image.new("RGB", (300, 300), (0, 255, 0))
plt.subplot(2, 2, 3)
plt.imshow(image_3)
# 生成白色图像(使用单个值表示,将被解释为灰度)
image_4 = Image.new("RGB", (300, 300), 255)
plt.subplot(2, 2, 4)
plt.imshow(image_4)
# 显示图像
plt.show()
# 保存图片到指定路径
plt.savefig("/data/workspace/myshixun/src/step3/pic2/pic2.png")
第4关:图像信息处理
from PIL import Image
# 打开原图
p = Image.open('/data/workspace/myshixun/src/step5/pic0/y.png')
p = p.convert('RGBA')
w, h = p.size # 获取图像的宽度和高度
# 循环遍历每个像素
for x in range(w):
for y in range(h):
r, g, b, a = p.getpixel((x, y)) # 获取像素的颜色和透明度
# 判断像素是否为绿色背景
if g - r > 30 and g - b > 30:
p.putpixel((x, y), (r, g, b, 0)) # 将绿色背景像素的透明度设为0
# 保存抠图结果
p.save('/data/workspace/myshixun/src/step5/stpic5/w.png')
第5关:进制换算程序
n = input()
m = input()
# 请在此添加代码
########## Begin ############
n = int(n,base=2)
n = hex(n)
m = int(m)
m = hex(m)
########## End ############
print(n,m)
第6关:输出实数的整数和小数部分
# 从键盘输入一个正的实数
x = float(input("输入一个正的实数:"))
# 获取整数部分
integer_part = int(x)
# 获取小数部分
decimal_part = x - integer_part
# 输出结果
print("{0:f}={1:d}+{2:f}\n".format(x, integer_part, decimal_part))
第7关:商品打折
# 请在此添加代码
########## Begin ##########
# 从用户输入获取购物价值
shopping_price = float(input())
# 判断输入是否为负数
if shopping_price < 0:
print("input error")
else:
# 根据购物价值计算折后价,按照折扣表进行计算
if shopping_price <= 1000:
discount = 1.0 # 无折扣
elif shopping_price < 2000:
discount = 0.95 # 9折
elif shopping_price < 3000:
discount = 0.9 # 8折
elif shopping_price < 5000:
discount = 0.85 # 8折
else:
discount = 0.8 # 7折
# 计算折后价并输出
discounted_price = shopping_price * discount
print("折后价:{:.1f}元。".format(discounted_price))
########## End ##########
第8关:逆序数
# 请在此添加代码
########## Begin ##########
# 从键盘输入一个三位整数n
n = int(input())
# 求逆序数m
unit_digit = n % 10 # 获取个位数
tens_digit = (n // 10) % 10 # 获取十位数
hundreds_digit = n // 100 # 获取百位数
# 计算逆序数m
m = unit_digit * 100 + tens_digit * 10 + hundreds_digit
# 输出逆序数m
print("n={0:3}的逆序数是{1:3}".format(n, m))
########## End ##########