本篇文章是对北京理工大学嵩天老师的《Python语言程序设计》第三章:基本数据类型考试题及练习题的学习记录。
目录
一、考试题
1、平方根格式化
问题描述:
获得用户输入的一个整数a,计算a的平方根,保留小数点后3位,并打印输出。
输出结果采用宽度30个字符、右对齐输出、多余字符采用加号(+)填充。
如果结果超过30个字符,则以结果宽度为准。
输入输出示例
输入 输出 示例 1 10
+++++++++++++++++++++++++3.162
参考代码:
import math
a = eval(input())
b = pow(a,0.5)
print("{:+>30.3f}".format(b))
2、字符串分段组合
问题描述:
获得输入的一个字符串s,以字符减号(-)分割s,将其中首尾两段用加号(+)组合后输出。
输入输出示例
输入 输出 示例 1 Alice-Bob-Charis-David-Eric-Flurry
Alice+Flurry
参考代码:
s = input()
a= s.split('-')
print(a[0]+'+'+a[-1])
二、练习题
1、文本进度条
问题描述:
采用字符串方式打印可以动态变化的文本进度条,进度条需要能在一行中逐渐变化
要求如下:
(1) 采用sleep()模拟一个持续的进度,获得文本进度条的变化时间;
(2) 通过print()函数实现单行动态刷新,在print()函数中更换参数end的默认值为'',每次使用print()函数输出时不能换行;
(3) 要能回退:打印后光标到之前的位置 \r。
参考代码:
import time
scale = 50
print("执行开始".center(scale//2,'-'))
start = time.perf_counter()
for i in range(scale + 1):
a = '*' *i
b = '.' * (scale -i)
c = (i/scale)*100
dur = time.perf_counter - start
print("\r{:^3.0f%[{}->{}]{:.2f}s").format(c,a,b,d),end='')
print("\n"+"执行结束".center(scale//2,'-'))
2、三次方格式化
问题描述:
获得用户输入的一个数字,可能是整数或浮点数,a,计算a的三次方值,并打印输出。
输出结果采用宽度20个字符、居中输出、多余字符采用减号(-)填充。
如果结果超过20个字符,则以结果宽度为准。
输入示例
10
输出示例
--------1000--------
参考代码:
a = eval(input())
print("{:-^20}".format(pow(a,3)))
3、星号三角形
问题描述:
读入一个整数N,N是奇数,输出由星号字符组成的等边三角形,要求:
第1行1个星号,第2行3个星号,第3行5个星号,依次类推,最后一行共N的星号。
输入示例 输出示例 示例1 3 * ***
参考代码:
a = eval(input())
b = int((a+1)/2)
for i in range (b):
print("{0:^{1}}".format('*' * (2*i +1),a))
4、恺撒密码
问题描述:
恺撒密码是古罗马恺撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:
原文: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
假设用户可能使用的输入包含大小写字母a~zA~Z、空格和特殊符号,请编写一个程序,对输入字符串进行恺撒密码加密,直接输出结果,其中空格不用进行加密处理。使用input()获得输入。
输入示例
python is good
输出示例
sbwkrq lv jrrg
参考代码:
s = input()
t = ""
for c in s:
if 'a' <= c <='z':
t += chr( ord('a') + ((ord(c)-ord('a')) + 3 )%26 )
elif 'A' <= c <= 'Z':
t += chr( ord('A') + ((ord(c)-ord('A')) + 3 )%26 )
else:
t += c
print(t)