【Python】格式化输出、猜随机数、ASCII码加密、加减乘除测试题

本文介绍了Python中格式化输出的方法,包括字符串格式化和浮点数的控制精度。接着,展示了如何通过随机数游戏实现简单的加密,并讲解了密码格式校验的规则。还涵盖了数字规约和基本的算术运算,以及列表操作和基础的2位数计算练习。

# 格式化输出常用方式

length,weight = 159,50
print("length:%d cm,weight:%f kg"%(length,weight))
import math
print("{0:>+10.2f}".format(math.pi))#      +3.14
print(f"pi is {math.pi:>+10.2f}")# pi is      +3.14

 

 

 

#随机数猜大小 

import random
key = random.randint(1,100)# 随机数
i = 3
while i>0:
    num = int(input("请输入一个整数(1-100)"))
    if num <= 1 or num >= 100:
        print("请重新输入")
    elif num == key:
        print("猜对了")
        break
    elif num > key:
        print("大了")
        i -= 1
    elif num < key:
        print("小了")
        i -= 1
print("游戏结束!")

 

 

# 后移5位ASCII码加密

方法一 列替换表

intab = "'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'\
'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'"
outtab = "'f''g''h''i''j''k''l''m''n''o''p''q''r''s''t''u''v''w''x''y''z''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''a''b''c''d''e'"
String = input("请输入需加密的密码")
trantab = String.maketrans(intab,outtab)
print("加密后:",String.translate(trantab))

方法二 循环判断 

text = str(input("请输入字符串"))
print("加密后:")
for i in text:
    if ord(i)>=65 and ord(i)<=85:
        print(chr(ord(i)+5),end='')
    elif ord(i)>85 and ord(i)<=90:
        print(chr(ord(i)-21),end='')
    elif ord(i)>=97 and ord(i)<=117:
        print(chr(ord(i)+5),end='')
    elif ord(i)>117 and ord(i)<=122:
        print(chr(ord(i)-21),end='')
    else:
        print(i,end='')

 

 

# 校验密码格式 

password = input('请输入一串密码,位数:6-20,须包含大小写字母、标点(不含空格)和数字:')
import string
flag = 1# 输入不规范时,再次循环
while flag:
    if len(password)<6 or len(password)>20:# 测试长度
        password = input("请输入一串密码,位数:6-20:")
    elif set(password).isdisjoint(set(string.ascii_lowercase)) or set(password).isdisjoint\
       (set(string.ascii_uppercase)) or set(password).isdisjoint(set(string.digits))\
       or set(password).isdisjoint(set(string.punctuation)) or password.find(' ')!=-1:
        # 测试是否有包含大小写字母、标点、空格和数字
        password = input("请输入一串密码,须包含大小写字母、标点(不含空格)和数字:")
    else:
        print("输入成功!")
        flag = 0# 中止循环

 # 数字规范方法

print(round(3.5))# 4 四舍六入奇数进原则
print(round(-3.5))# -4
import math
print(math.ceil(3.5))# 4 返回数字的上入整数
print(math.ceil(-3.5))# -3
print(math.floor(3.5))# 3 向下取整
print(math.floor(-3.5))# -4

# 使用for循环时需考虑列表等更新情况 

ls = [1,2,3,4,5,6,7]
for i in ls:
    print(i)# 1  3  5  7
    ls.remove(i)

# 2位数加减乘除 

import random
from decimal import *
score = 0
for i in range(10):
    a = random.randint(11,99)
    b = random.randint(10,a)
    opt = random.choice("+-*/")
    print("请计算:",a,opt,b,"=")
    key = str(input("请输入答案"))
    if opt == "+":
        flag = (eval(key) == a + b)
    elif opt == "-":
        flag = (eval(key) == a - b)
    elif opt == "*":
        flag = (eval(key) == a * b)
    elif opt == "/":
        c = Decimal(a) / Decimal(b)
        c = c.quantize(Decimal("0.00"),ROUND_HALF_UP)
        key = Decimal(key)
        key = key.quantize(Decimal("0.00"),ROUND_HALF_UP)
        flag = (key == c)
    if flag == True:
        print("You are right!")
        score = score + 1
    else:
        print("You are wrong!")
print("score:",score*10)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

*Min*

写的不好多多包涵~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值