疯狂Python讲义笔记-20191215

想系统学习python中 matplotlib, numpy, scipy, pandas。找到一篇知乎https://www.zhihu.com/question/37180159
其中的视频教程有待研究,先参考https://github.com/lijin-THU/notes-python李金的Python笔记,以及李刚的《疯狂python讲义》,对比较重要又容易忘记的Python功能进行记录,若李金笔记中有的就不再单独记载。

第二章 变量和简单类型

print

print(value, …, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)
如上述语法,若print多个变量,默认以空格分隔,但可以通过sep进行设置;默认输出结束添加换行符;可以通过file将内容输出到特定文件中:
f = open(“poem.txt”, “w”)
print(‘xxx’, file = f)
f.close()。
第12章将详细介绍文件操作的内容。

变量命名避开python的关键字和内置函数

若用关键字作为变量名,python会报错;若用内置函数名作为变量名,python不会报错,但该内置函数会被覆盖而失去作用。
查看关键字
import keyword
keyword.kwlist
查看内置函数
官方说明文档
https://docs.python.org/zh-cn/3/library/functions.html

str()或repr()函数

python不允许直接拼接数值和字符串,必须先将数值转换成字符串。
s1 = 'The price of the book is: ’
p = 99.8
print (s1 + str§) or print(s1 + repr§)
但repr()函数会以python表达式的形式来表示值(带引号)

input()提示用户输入内容,捕获内容并返回一个字符串

长字符串

‘’'三引号的使用,中间可以添加单引号,也可添加双引号;
\对换行符进行转义,可以把字符串写成两行;

原始字符串r

r’G:\publish\codes\02\2.1’
若’'中又包含引号,仍需要转义。这种情况最好使用三引号形式。

字符串格式化

price = 108
print(“the book’s price is %s” % price)
三部分:第一部分为字符串模板,包含%s,被称为转换说明符(Conversion Spercifier),相当于一个占位符,而%s指定将变量或值使用str()函数转换为字符串;第二部分固定使用"%“作为分隔符;第三部分为变量。若第一部分为多个占位符,第三部分也应提供多个变量。
user = ‘Charli’
age = 8
print(”%s is a %s years old boy" % (user, age))

python也提供其他的转换说明符。P28
也可限制转换字符串的最小宽度,若不足最小宽度,则程序默认右对齐,在左侧补充空格。也可通过设置改变对齐方式及填充内容。
-:指定左对齐;+:表示数值总带着符号(+/-);0:表示补充0
疯狂Python讲义笔记-20191215_第1张图片

序列相关方法

字符串本质是由多个字符组成的,因此可以通过索引获取字符和位置等
s[0]、s[3:5]
支持in 运算符判断是否包含某子串:
print(‘very’ in s) # True
支持len()函数、min()、max()

大小写相关方法

python字符串由内建的str类代表,str类包含哪些方法呢?
掌握两个帮助函数:
dir():列出指定类或模块包含的全部内容(包括函数、方法、类、变量等)
help():查看某个函数或方法的帮助文档
有了这两个函数,若知道类名称,即可查到此类中所有函数、方法的使用说明。
疯狂Python讲义笔记-20191215_第2张图片
其中以"__"开头和结尾的方法被约定成私有方法,不希望被外部直接调用。
想查看某个方法的用法,使用help()函数:help(str.title)

删除空白

strip():删除字符串前后空白;lstrip():删除字符串左边空白;rstrip():删除字符串右边空白
查看帮助文档,其还可以删除字符串前后指定字符:
疯狂Python讲义笔记-20191215_第3张图片

查找、替换相关方法

startwith()/endwith():判断字符串是否以指定子串开头/结尾;
find():查找指定子串在字符串中出现位置,若没找到子串,则返回-1.
index():查找指定子串在字符串中出现位置,若没找到子串,则引发错误。
replace():使用指定子串替换字符串中的目标子串
translate():使用指定翻译映射表对字符串执行替换
s.find(‘org’)
s.index(‘org’)
s.find(‘org’, 9) #-1
s.index(‘org’, 9) # Error
s.replace(‘it’, ‘xxx’)
s.replace(‘it’, ‘xxx’, 1) # 将字符串中的1个it替换成xxx
定义翻译映射表:
table = {97:945, 98: 946, 116: 964}
s.translate(table)
疯狂Python讲义笔记-20191215_第4张图片
python为str类提供一个maketrans()方法,通过该方法可以方便地创建翻译映射表。
table = str.maketrans(‘abt’, ‘xyz’)

分割、连接方法

split():将字符串按指定分隔符分割成多个短语
join():将多个短语连接成字符串
疯狂Python讲义笔记-20191215_第5张图片

运算符

//取整;%求余(结果不一定总是整数)

比较运算符和bool类型

is:判断两个变量所引用的对象是否相同。
==:判断两个值是否相同。

python提供了一个全局的id()函数来判断变量所引用的对象的内存地址(相当于对象在计算机内存中存储位置的门牌号)
疯狂Python讲义笔记-20191215_第6张图片

三目运算符

True_statements if expression else False_statements
先对逻辑表达式expression求值,若表达式返回True,则执行并返回True_statements的值;若逻辑表达式返回False,则执行并返回False_statements值。
print(“a大于b”) if a > b else print(“a不大于b”)

statements可防止多条语句,支持两种放置方式:
以英文逗号分隔,每条语句都执行,程序返回多条语句的返回值组成的元组;
以英文分号分隔,每条语句都执行,程序只返回第一条语句的返回值。

支持嵌套
c = 5
d = 5
print(“c大于d” if c > d else (print(“c小于d” if c < d else print(“c等于d”)

运算符的结核性和优先级

P44

你可能感兴趣的:(Python)