python入门知识点笔记—day2 实例 “天天向上的力量”和“文本进度条”(基本数据类型的学习)

本篇笔记会大篇幅的介绍基本数据类型,通过两天的学习,感觉这一章节碎知识点比较多,刚学的话可能会一头雾水,好多特殊的用法涌来,对于初学者来说很不友好,但是我们在本章节只需对这种数据类型还有用法做初步了解,以后用到的会比较多,可谓熟能生巧。

#1.数据类型

①整数类型:可分为十进制,二进制,八进制和十六进制。默认情况采用的是十进制,用到其他进制时,需要增加引导符号。比如,二进制以0b或0B引导,八进制以0o或0O引导,十六进制以0x或0X引导。
pow()函数:pow(x,y)表示的是xy

②浮点数类型:表示带有小数的数值,浮点数有两种表示方法:十进制表示和科学计数法表示。其中科学计数法使用到了字母e或E做为幂的符号,以10为基数,e=a*10b。例如 4.3e-3值为4.3×10-3

特别注意的是,浮点数间运算存在不确定尾数。这时就需要用到round()函数。
round()函数:用来判断浮点数运算与浮点数运算之间的比较关系。
round(x,d),对x四舍五入,d是小数截取的位数。round(0.1+0.2,1)结果为0.3。
需要注意的是,在浮点数间运算和比较时要用到round()函数来辅助。

③复数类型:表示数学中的复数,可看做有序的二元有序实数对(a,b),表示为a+bj,其中a为实数部分,b为虚数部分。对于复数z,可以用z.real和z.imag分别获得它的实数部分和虚数部分。例如(1.23e-4+5.67e+89j).real的结果为0.000123;(1.23e-4+5.67e+89j).imag的结果为5.67e+89。

#2.数字类型操作
内置的数值运算操作符:有9个,为记忆理解部分,话不多说,直接上图表。
内置操作符
内置操作符

需要注意的是整数,浮点数,复数之间存在一种逐渐扩展的关系,即
整数->浮点数->复数。整数可看成是浮点数没有小数的情况,浮点数可以看成是复数虚部为0的情况。
op表示二元数学操作符,x op y 等价于 x = x op y。

内置的数值运算函数:这些函数刚开始会让大家感到有些吃力,但是通过后期不断使用,大家会越来越熟悉,现在就需要大家能很好的理解。
内置数值运算函数
内置数值运算函数
在函数中,如果某一个参数可省略,一般在该参数
两边加上[ ]。
内置的数字类型转换函数
内置的数字类型转换函数

#3实例:天天向上的力量

①普阶版:

dayup = pow((1.0+0.001),365)                                #每天提高0.0001,365后提高的力量
daydown = pow((1.0-0.001),365)                              #每天下降0.0001,365天后下降的力量
print("向上: {:.2f}, 向下:{:.2f}.".format(dayup,daydown))  #将结果打印出来

②中阶版:一年中,5个工作日提高1%,2个休息日下降1%

dayup,dayfactor = 1.0, 0.01                          #对dayup和dayfactor赋予初值
for i in range(365):                                 #一年365天的循环
    if i % 7 in [6,0]:                               #判断一年中的某一天是否为休息日
       dayup = dayup * (1-dayfactor)                 #如果是休息日,需要下降1%
    else:
       dayup = dayup * (1+dayfactor)                 #是工作日,增加1%
print("向上5天向下2天的力量:{:.2f}.".format(dayup))  #打印结果

③进阶版:天天向上的力量,如果每周工作5天,休息2天,休息日水平下降0.01,工作日要努力到什么程度,一年后的水平才与每天努力1%取得的效果一样。

def dayup(df):                                        #定义dayup()函数
   dayup = 1.0                                        #对变量dayup赋予初值
   for i in range(365):                               #一年的循环
       if i % 7 in [6,0]:                             #判断一年中第i天是否为两天休息日
          dayup = dayup * (1-0.01)                    #如果是休息日,下降1%
       else:
          dayup = dayup * (1+df)                      #否则需要调用dayup(df)函数计算
    return dayup                                      #返回保存dayup的值
dayfactor = 0.01                                      
while (dayup(dayfactor)<37.78):                       #dayup(dayfactor)的值与每天努力1%的力量做比较
     dayfactor = dayfactor + 0.001
print("每天的努力参数是:{:.3f}.".format(dayfactor))

#4.字符串类型及其操作

①字符串类型的表示:字符串是由0个或多个字符组成的有序字符序列。可以由一对单引号( ’ ),双引号(“),或三引号(‘’')构成。提到字符串就会想到我们前面学到的字符串的索引和切片。我们这里来介绍一下字符串切片高级用法。
字符串切片的高级用法:使用[M:N:K]根据步长对字符串切片,<字符串>[M:N]其中M缺失表示至开头,N缺失表示至结尾。
<字符串>[M:N:K],根据步长对字符串进行切片。例如“0一二三四五六七八九十”[1:8:2]结果是“一三五七”。
将字符串逆序,例如“0一二三四五六七八九十”[::-1]的结果为“十九八七六五四三二一”。
反斜杠字符(\):是一个特殊字符,在字符中表示转义。”\b" ,“\n”,“\t”,“\r”。
“\b"表示回退,向后退一格;”\n"表示换行,光标移到下行首行;“\r"表示回车,光标移到本行首行;”\t"表示水平制表。

②基本的字符串操作符:
基本的字符串操作符
直接通过一个例子来说明
例:读入一个表示星期几的数字(1-7),输出对应的星期字符串名称。

weekstr = "星期一星期二星期三星期四星期五星期六星期日"       #定义一个字符串
weekid = eval(input("请输入星期数字(1-7):"))             #输入的星期数字
p = (weekid-1)*3                                           
print(weekstr[p:p+3])                                      #打印字符串weekstr中的字符

精简的方法

weekstr = "一二三四五六日"
weekid = eval(input("请输入星期数字(1-7):"))
print("星期"+weekstr[weekid-1])

内置的字符串处理函数
内置字符串处理函数
内置字符串处理函数
Unicode编码:python字符串中每个字符都使用Unicode。

内置的字符串处理方法:这里我要先说明一下“方法”,“方法”在编程中是一个专有名词,特指< a >.< b >() 风格中的函数 ,但与 < a >有关,< a >.< b >()风格使用。
内置字符串处理方法
内置字符串处理方法
内置字符串处理方法
这些处理方法会让人整迷糊,我们要先理解,然后在以后多次使用就会熟悉。

字符串类型格式化:字符串通过format()方法进行格式化处理。字符串格式化用于解决字符串和变量同时输出时的格式安排。

字符串format()方法的基本使用格式如下:
<模板字符串>.format()(< 逗号分隔的参数 >)
模板字符串由一系列槽组成,用来控制修改字符串中嵌入值出现的位置,其基
本思想是将format0方法中逗号分隔的参数按照序号关系替换到模板字符串的槽中。
槽用大括号({})表示,如果大括号中没有序号,则按照出现顺序替换。
槽顺序和参数顺序

槽内部样式:
{ <参数序号>:<格式控制标记>}
槽中格式控制标记的字段
对槽中格式控制标记的字段可以把他分为两部分,前三个为一部分,后三个为一部分。
“{ 0:= ^ 20}”.format.(PYTHON)
根据上表可知,‘=’为填充内容;‘^’为居中对齐;‘20’为宽度。

“{0: , .2f}”.format(12345.6789) ,输出结果为’ 12,345 . 68 ’
‘,’表示千位分隔符;‘. 2’为精度;‘f’为类型。

#5.time时间库

①time库是python中处理时间的标准库,是计算机时间的表达;提供获取系统时间并格式化输出功能;提供系统级精确计时功能,用于性能分析。表达形式为
import time
time.< b > ()

②time库包括三类函数

时间获取:time() ;ctime() ;gtime()
在这里插入图片描述
在这里插入图片描述

时间格式化:strftime() ;strptime()
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述

程序计时:sleep() ;per_counter()

在这里插入图片描述
在这里插入图片描述

#6.文本进度条

①简单的开始:静态文本的进度条显示

import time                                     #调用time库
scale = 10                                      #文本进度条的宽度
print("------开始执行------")                   #开始的标签
for i in range(scale+1):                        #每次循环都会打印进度条
    a = '*' * i                                 #字符被复制的次数
    b = '.' * (scale-i)
    c = (i/scale)*100                           #输出百分比
    print("%{:^3.0f}[{}->{}]" .format (c, a, b))  #槽位的前后对应输出
    time.sleep(0.1)                              #进行一个休眠
print("------执行结束------")                    #结束的标签
    

②单行动态刷新

import time
for i in range(101):
    print("\r{:3}%".format(i), end=" ")    #\r使得光标每次回到本行行首,实现动态刷新
    time.sleep(0.05)

③带刷新的文本进度条

import time
scale = 50
print("执行开始". center(scale//2 , '-'))        #使用center()函数,使得字符串宽度居中,用字符‘-’填充
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, dur), end='')
    time.sleep(0.05)
print("\n"+"执行结束".center(scale//2,'-'))     #\n换行,光标移到下行行首

本次要分享的内容结束了,这次分享的知识点复杂繁琐,初次接触会显得异常吃力,如此碎且多的知识点需要我们耐住性子,慢慢来,熟能生巧嘛。学到这里,我们已经对python中一些代码能够独立编写了,这个时候就要多刷一些代码,及时翻阅笔记,对模糊的知识点进行反复巩固。鉴于这段时间比较忙,而且这次知识点如此之多,小编也需要多刷一些编程题,对以上知识点熟练运用之后,再开启下一篇章。文中若有错误,望指正,感谢!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值