学python第2天 学习日记

学python第2天 学习日记,第1张

学python第2天 学习日记

1、特殊的格式化控制字符

a响铃b回退1格f换页n

换行

r回车t水平制表v垂直制表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,否则Falsestr.isprintable都是可打印的返回True,否则Falsestr.isnumeric都是数字返回True,否则Falsestr.isspace都是空格返回True,否则Falsestr.endswith(A[,strart,end])都是以A结尾返回True,否则Falsestr.startwith[B[,start,end])都是A开头返回True,否则Flasestr.split(sep=None,maxsplit=1)返回1个列表由str根据sep被分离的部分组成str.replace(old,new)

返回str的副本,所有old替换成new

str.count计算出现字数str.center字符串居中

str.strip(A)

左侧右侧去掉Astr.zfill(width)返回副本,长度为width,不足左侧补0str.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))

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5625024.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存