1、特殊的格式化控制字符
\a | 响铃 | \b | 回退1格 | \f | 换页 | \n | 换行 | \r | 回车 | \t | 水平制表 | \v | 垂直制表 | \0 | NULL,什么都不做 |
2、内置的字符串处理函数
len | 返回字符串长度或者元素个数 | str | 返回字符串形式 | chr | 返回Unicode编码对应的单字符 | ord | 返回单字符的Unicode编码 | hex | 返回整数对应十六进制的小写形式字符串 | oct | 返回整数对应八进制数的小写形式字符串 |
3、编码
每个字符在计算机里表示的数字称为编码,字符串以编码序列的形式储存在计算机中
目前计算机常用的为ASCII编码,该编码用0-127表示常见字符和特殊值
凯撒密码采用了替代方法对信息中的每个英文字符循环替换为字母表序列中该字符后第三个字符。如A换成D,Z换成C。为其做一个自动化转化的程序。
plaincode = input("请输入明文:")
for p in plaincode:
if ord("a") <= ord(p) <= ord("z"):
print(chr(ord("a")+(ord(p)-ord("a")+3)%26),end='')
else:
print(p,end='')
4、内置的字符串处理方法
str.lower | 小写 | str.upper | 大写 | str.islower | 都是小写返回True,否则False | str.isprintable | 都是可打印的返回True,否则False | str.isnumeric | 都是数字返回True,否则False | str.isspace | 都是空格返回True,否则False | str.endswith(A[,strart,end]) | 都是以A结尾返回True,否则False | str.startwith[B[,start,end]) | 都是A开头返回True,否则Flase | str.split(sep=None,maxsplit=1) | 返回1个列表由str根据sep被分离的部分组成 | str.replace(old,new) | 返回str的副本,所有old替换成new | str.count | 计算出现字数 | str.center | 字符串居中 | str.strip(A) | 左侧右侧去掉A | str.zfill(width) | 返回副本,长度为width,不足左侧补0 | str.format | 排版格式规范化 | str.join | 返回一个新字符串,由组合数据类型变量的每个元素组成,元素间用str分离 |
5、字符串格式化
字符串.format()
print("{}的成绩很好,在期末考试中考了{}分,{}班同学应该向他学习。".format("小明","100","五"))
#小明的成绩很好,在期末考试中考了100分,五班同学应该向他学习。
完整的format格式:
:<填充><对齐><宽度><,><精度><类型>
6、文本进度条
import time
scale = 10
print("------执行开始------")
for i in range(scale+1):
a,b = '**' * i, '..' * (scale -i)
c = (i/scale)*100
print("%{:3.0f}[{}->{}".format(c,a,b))
time.sleep(0.1)
print("-----执行结束-----")
"""
------执行开始------
% 0[->....................
% 10[**->..................
% 20[****->................
% 30[******->..............
% 40[********->............
% 50[**********->..........
% 60[************->........
% 70[**************->......
% 80[****************->....
% 90[******************->..
%100[********************->
-----执行结束-----
"""
7、单行动态刷新
将每一次进度输出都固定在同一行并不断地用新生成的字符串覆盖之前的输出,形成进度条不断刷新的动态效果
import time
for i in range(101):
print("\r{:2}%".format(i),end="")
time.sleep(0.05)
输出没有单行刷新的可能原因:
IDLE本身屏蔽了单行刷新的功能,可以去控制台执行,或者在其他第三方集成中实现,如pycharm
8、带刷新的文本进度条
import time
scale = 50
print("执行开始".center(scale//2,'-'))
t = time.perf_counter()
for i in range(scale +1):
a = '*' *i
b = '.' *(scale-i)
c = (i-scale)*100
t -= time.perf_counter()
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,-t),end='')
time.sleep(0.05)
print("\n"+"执行结束".center(scale//2,'-'))
python在3.8版本中已不再支持time.clock()方法,因此使用了time.perf_counter()代替
9、程序的基本结构
程序有3种结构:顺序结构、分支结构和循环结构,,这些结构都只有1个入口和1个出口
分支结构:单分支、二分支
循环结构:条件循环、遍历循环
10、程序的描述方式
1)自然语言描述:使用人类语言直接描述
2)流程图:直观清晰,但是比较繁琐
3)伪代码:不拘泥于集体编程语言和语法但是保持基本的逻辑框架
11、if语句
if? 条件:
? ? 语句
if语句的执行与否依赖于条件判断
12、关系操作符
< | 小于 | <= | 小于等于 | >= | 大于等于 | >? | 大于 | == | 等于 | != | 不等于 |
13、二分支结构:if-else语句
if? 条件:
? ? 语句1
else:
? ? 语句2
14、多分支结构:if-elif-else语句
if? 条件1:
? ? 语句1
elif? 条件2:
? ? 语句2
....
else:
? ? 语句N
height,weight = eval(input("请输入身高(米)和体重(公斤):"))
bmi = weight / pow(height,2)
print("BMI数值为:{:.2f}".format(bmi))
who,dom = "",""
if bmi < 18.5:
who = "偏瘦"
elif bmi < 25:
who = "正常"
elif bmi < 30:
who = "偏胖"
else:
who = "肥胖"
if bmi < 18.5:
dom = "偏瘦"
elif bmi < 24:
dom = "正常"
elif bmi <28:
dom = "偏胖"
else:
dom = "肥胖"
print("BMI指标为:国际’{0},国内{1}".format(who,dom))
|