Python笔记-要进阶啦!

笔记来源

中国大学MOOC-北理工

一:Python 网络爬虫与信息提取

二:Python 语言程序设计

本试剂中心内容:

数字类型即字符串类型

天天向上的力量

字符串

无关学习的后记

YOU need to KNOW

《战国策》中说“积薄而为厚,聚少而为多”;

《汉书》中提到“众少成多,积小致巨”;

《劝学》中的名段:“积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里;不积小流,无以成江海。骐骥一跃,不能十步;驽马十驾,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。蚓无爪牙之利,筋骨之强,上 食 埃 土 ,下 饮 黄 泉 ,用 心 一也。蟹六跪而二螯,非蛇鳝之穴无可寄托者,用心躁也。”

翻出这些文字,结合这节课的所学,感悟更深一些。

那么,说了这么多古文,跟这节课有什么关系呢?

本节课主要说的时“数值类型”,其他语言学习的第一部分,也是十分枯燥的一部分。

有什么用呢?

如果想知道“天天向上”的力量有多大,我们必须借助计算的力量。而如果想学习用计算机的思维来思考问题,这一节很关键,是实现计算思维和计算的重要途径。

每天进步0.001、0.005、0.01,一年后你的变化是怎样?

学点文化理论

数字类型

与R语言的数据类型相同

整数类型

⭐可正可负,没有取值范围限制。一个函数:pow(x,y), X的y次方。

⭐4 种进制表示形式:

十进制,1010, 99, -217

二进制,以0b或0B开头:0b010, -0B101

八进制,以0o或0O开头:0o123, -0O456

十六进制,以0x或0X开头:0x9a, -0X89

浮点数

⭐同数学中实数概念。

⭐带有小数点及小数的数字,取值范围(约-e307至e308)和小数精度(e(-16))都存在限制,但常规计算可忽略。

⭐存在不确定尾数,不是bug,是二进制与十进制转换时产生,可以用round(x,d) 对数据四舍五入。

⭐浮点数可用科学计数法表示

e,即a*10的b次方,如4.3e-3,为0.0043。

复数

⭐同数学中的复数。

定义j = 根号下− ,构建数学体系,a+bj成为复数,a为实部,b是虚部。

案例:

z=1.23e-4 + 5.6e + 89j

z.real 获得实部。

z.imag 获得虚部。

数值运算操作符

⭐ +、—、*、/(除,10/3为3。3333……)、//(整数除,x与y的整数商,如10//3为3)

+ x(x本身)、-y(x的负值)、x%y(余数)、x**y(当x是小数时,开方运算10**0.5结果是根号下10)

x op = y(op为二元操作符,x + = y、x * = y、x // = y;即

>>>x = 3.1415

>>>x ** = 3# 与x = x **3 等价)

数值运算函数

⭐abs(x)(绝对值)

divmod(x,y)(商余,(x//y,x%y),如divmod(10,3)结果为(3,1)

pow(x,y[,z])

round(x[,d])(d为保留小数位数)

max(x1,x2,……,xn)

min(x1,x2,……,xn)

一些改变数值类型的函数

int(x)(舍弃小数部分123.23→123)、float(x)(增加小数部分,12→12.0)、complex(x)(增加虚数部分,12→12+0j)

怎样才能天天向上?

案例的语句如下:

需求1:每天进步或退步 1‰:

#DayDayUpQ1.py

dayup = pow(1.001, 365)

daydown = pow(0.999, 365)

print("向上:{:.2f},向下:{:.2f}".format(dayup, daydown))

需求2:每天进步/退步 1%或 5‰:

#DayDayUpQ2.py

dayfactor = 0.005

dayup = pow(1+dayfactor, 365)

daydown = pow(1-dayfactor, 365)

print("向上:{:.2f},向下:{:.2f}".format(dayup, daydown))

审判一下:

#DayDayUp1.py

dayfactor = input ("请输入:")

dayup = pow(1 + dayfactor,365)

daydown = pow(1 - dayfactor,365)

print("一年后你将成长:{:.2f}或倒退{:.2f}".format(dayup,daydown))

如上,有何错误?(诚恳求助脸,求评论回复)

需求3:一周 5 工作日,每天进步1%,2 个休息日,每天退步1%:

计算思维:for……in……

#DayDayUp3.py

dayup = 1

dayfactor = 0.01

for i in range(365):

if i%7 in [6,0]:

dayup = dayup * (1 - dayfactor)

else:

dayup = dayup * (1 + dayfactor)

print("工作日的力量:{:.2f}".format(dayup))

需求4:一周 5 工作日,2 个休息日,周末每天退步1%,每天进步多少才能与不休息的人持平?

#DayDayUp.py

def dayUP(df): # equal to y = f(x)

dayup = 1

for i in range (365):

if i % 7 in [6,0]:

dayup = dayup * (1 - 0.01)

else:

dayup = dayup * (1+ df)

# equal f(x) = f(x) * (1+x)

return dayup

dayfactor = 0.001

# 设定初始值

while dayUP(dayfactor)

dayfactor += 0.001

print ("工作日的努力参数是:{:.3f}".format(dayfactor))

Ending!终于结束了,这一小节磕坏了脑门。

字符串系列磨人小妖精-上

字符串的复习与知新

⭐由一对单引号或双引号表示:“请输入”或'C';

是字符的有序序列,可以对字符进行索引:“请”为第0个字符。

类型及操作(2类,四种表示方式):

“”、‘’、‘‘‘ ’’’(表示多行字符串)

‘‘‘ python

语言’’’

表示:“(‘’)”或‘(“”)’或‘‘‘(“(‘’)”) ’’’。

⭐序号:

正向递增序号:0~N;

反向递减序号:-M~-1。

⭐使用[]获取字符串中的一个或多个字符:

索引:返回单个字符 [M];

切片:返回一段字符串 [M:N];

⭐高级用法:[M: N: K] 切出K步长的字符串,M缺失表示至开头,N缺失表示至结尾:

“0123456789A” [1:8:2] 结果为"1357"

逆序:[::-1]结果为:“A9876543210”

⭐特殊字符:

⭐转义符\:表达特殊字符的本意;

“这里有个双引号(\")”结果为“这里有个双引号(")”

⭐转义符形成一些组合,表示一些不可打印的含义:

“\n”:换行(光标移动到下行首):

"\b":回退;

"\r":回车(光标移动到本行首);

操作符

+

* (复制n次字符串;n * x 或 x * n)

in(如果x是s的子串, 返回True,否则False;x in s)

思考:如何输入数字,输出“星期N”?

代码:

#WeekNamePrintV1.py

weekStr = "星期一二三星期四星期五星期六星期日"

weekId = eval(input ("Please input number(1-7):"))

pos = (weekId-1)*3

print(weekStr[pos:pos+3]) #切片

#WeekNamePrintV2.py

weekStr = "一二三四五六"

weekId = eval(input ("Please:"))

print("星期"+“weekStr[weekId-1]) #切片;+ 为连接。

处理函数(6个)

len(x):返回字符串的长度;

Str(x):任何类型x对应的字符串形式(与eval相反);

hex(x)或oct(x):转换十六进制/八进制;

chr(u) :Unicode→单字符;

ord(x):Unicode←单字符;

注:Unicode,Python里所有字符的编码方式,包括英文,中文汉字,韩文,日文等。起初是其他的编码代替英文以外的字符。

举个栗子:

>>>"1 + 1 = 2" + chr(10004)

`1 + 1 = 2 ` # 10004为`的编码

尝试一下:十二星座的符号:9801 ♈♉♊♋♌♍♎♏♐♑

处理方法(常用的8个)

⭐“方法”?(看完例子就明白了)

特指.()风格中的函数();

:方法本身也是函数,但与有关,.()风格使用;

:为字符串或字符串变量,存在一些可用方法;

⭐哪些函数?

str.lower() 或 str.upper()

str.split(sep=None)

str.count(sub):返回字符串“sub”出现的次数;

str.replace(old.new)

str.center(width[,fillchar]):“width”长度的字符串中间,插入fillchar;

str.strip(chars):去掉“str”中,chars中列出的字符;

"= python= ".strip(" =np") 结果为"tytho"

str.join(iter):添加"str"到变量“iter”中每个元素后,用于字符串分割。

",".join("12345") 结果"1,2,3,4,5"

格式化

预警!大脑已短路,需要休息!

后记

课程越往后,越需要付出更多的时间和理解力。

最近在考虑工作的问题,从去哪家单位到是先工作还是处理如何面对自己的问题。在拒绝了手里所有offer的情况下,今天有了一些答案:工作会有的,但是独自面对自己的机会不常有,而我,可能没法边工作边处理这个问题。

每天忙于工作,其实是把工作当作逃避面对自己的借口。可能听起来有点绕,我们每天都在面对自己,哪有逃避一词?

陷在工作中,不知道如何与空闲的自己相处,不知道世界上原来还有“生活”二字,不知道如何面对还在成长中的自己,忘记了思考,归纳生活,总结人生。一切节奏完全跟随工作而行,完全没有了生活,陷入对未来和发展的焦虑。

曾以为,我的世界里没有自己,我应当为社会主义建设而奋斗。可是一来这不是人生的全部,不符合人性,也让人丧失自我;二来,这工作真的就是为社会主义奋斗了吗?三,社会主义是对的吗?人类是对的吗?一定要接受自然法则的惩罚吗?

好像都不是。

世界观在默默的改变着,也或许,我曾经就没有这一宝物。我开始茫然了。

可是,没有自己的世界里,“我”似乎变成了一台机器,享受着任意一种形式的奉献。即便是在温室里,只要忙碌就好。

离开所谓的庇护,让挫折折磨的更猛烈些,花儿才有机会收获不同的娇艳。走出一方温室,或遭遇凋零,或灿烂绽放,总会有些不一样的结果,人生那么短,为什么要陷在现实的牢笼里。

两年,一直用忙碌麻痹着自己,回避着生活,回避着自己的短处,回避着与陌生人沟通。

忙的时候可以给自己借口:我忙的没时间学习。闲下来这个理由再也不成立了。

从时间规划,自我预判与感知到学习具体的内容,逻辑的训练到归纳总结的能力,一切重新认知,进行调整与适应。

温室,不是培育花朵的好地方。

焦虑,是必要的,是推动自我进步的动力。接受并不美好的自己,接受焦虑的自己,然后再去处理焦虑,理顺自己的内心。

#世界观 #你有自我吗? #你有生活吗?

下次打算聊一下 #笨是个问题吗?作为资深笨鸟(从小被老妈吐槽……&……)还是有这个资格吧?

碎碎摘录

什么是美?——没缺陷,不常见。

——张双南,“慧眼”卫星首席科学家

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181022G1Z58A00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券