笔记来源
中国大学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的情况下,今天有了一些答案:工作会有的,但是独自面对自己的机会不常有,而我,可能没法边工作边处理这个问题。
每天忙于工作,其实是把工作当作逃避面对自己的借口。可能听起来有点绕,我们每天都在面对自己,哪有逃避一词?
陷在工作中,不知道如何与空闲的自己相处,不知道世界上原来还有“生活”二字,不知道如何面对还在成长中的自己,忘记了思考,归纳生活,总结人生。一切节奏完全跟随工作而行,完全没有了生活,陷入对未来和发展的焦虑。
曾以为,我的世界里没有自己,我应当为社会主义建设而奋斗。可是一来这不是人生的全部,不符合人性,也让人丧失自我;二来,这工作真的就是为社会主义奋斗了吗?三,社会主义是对的吗?人类是对的吗?一定要接受自然法则的惩罚吗?
好像都不是。
世界观在默默的改变着,也或许,我曾经就没有这一宝物。我开始茫然了。
可是,没有自己的世界里,“我”似乎变成了一台机器,享受着任意一种形式的奉献。即便是在温室里,只要忙碌就好。
离开所谓的庇护,让挫折折磨的更猛烈些,花儿才有机会收获不同的娇艳。走出一方温室,或遭遇凋零,或灿烂绽放,总会有些不一样的结果,人生那么短,为什么要陷在现实的牢笼里。
两年,一直用忙碌麻痹着自己,回避着生活,回避着自己的短处,回避着与陌生人沟通。
忙的时候可以给自己借口:我忙的没时间学习。闲下来这个理由再也不成立了。
从时间规划,自我预判与感知到学习具体的内容,逻辑的训练到归纳总结的能力,一切重新认知,进行调整与适应。
温室,不是培育花朵的好地方。
焦虑,是必要的,是推动自我进步的动力。接受并不美好的自己,接受焦虑的自己,然后再去处理焦虑,理顺自己的内心。
#世界观 #你有自我吗? #你有生活吗?
下次打算聊一下 #笨是个问题吗?作为资深笨鸟(从小被老妈吐槽……&……)还是有这个资格吧?
碎碎摘录
什么是美?——没缺陷,不常见。
——张双南,“慧眼”卫星首席科学家
领取专属 10元无门槛券
私享最新 技术干货