记得我是数学系的,大二时候因为参加数学建模,学习Python爬虫,去图书馆借了一本Python基础书,不厚,因为有
matlab
和C语言
基础,这本书一个星期看完了,学完后感觉Python入门很快,然后要开始学爬虫和矩阵计算,学习一下对应的包就行了,感觉很方便,爱上了这门语言,虽然毕业后做了Java,但是平时工作中也会用一些Python。不过初学者有很多基础知识点记不住,因为用得少,这里总结记录一下。更多Python知识,可以看 等待下一个秋-Python
介绍
Python 是一门独特的语言,快速浏览一下他的要点:
- 面向对象:每一个变量都是一个类,有其自己的属性(attribute)与方法(method)。
- 语法块:用缩进(四个空格)而不是分号、花括号等符号来标记。因此,行首的空格不能随意书写。
- 注释:行内用“#”号,行间注释写在两组连续三单引号之间:’’’
- 续行:行尾输入一个反斜杠加一个空格(’/ ‘),再换行。如果行尾语法明显未完成(比如以逗号结尾),可以直接续行。
- 打印与输入: 函数 print() 与 input(),注意 print() 的 sep 与 end 参数。
- 变量:无需指定变量类型,也不需要提前声明变量。
- 删除变量:del()
- 复制变量:直接将变量a赋值给b,有时仅仅复制了一个“引用”。此后 b 与 a 的改动仍会互相影响。必要时使用 a is b 来判断是否同址。
- 模块:通过 import pandas 的方式加载模块(或者 import pandas as pd),并用形如 pandas.DataFrame(或 pd.DataFrame)的方式调用模块内的方法。也可以使用 from pandas import DataFrame 的方式,这样在下文可以直接使用 DataFrame 作为调用名。
- 帮助:配合使用 dir() 与 help() 命令;其中前者是输出变量所有的成员。以及查阅 官网页面。
变量复制的一个例子。
a = [1, 2]
b = a
print(id(a) - id(b)) # 地址差为 0,表示实质是同址的
0
b.append(3)
print(a) # 只改动了 b,但 a 也跟着变动了
[1, 2, 3]
a is b
True
使用切片来重新分配空间:
a is a[:]
False
数据结构
Python 原生的数据结构包括:
数字(num)
细分为整数(int)与浮点数(float)两种。
- 四则运算:+, -, *, / ,乘方: **
- 整除: 5 // 2 = 2,取余:5 % 2 = 1
- 自运算: a += 1 (四则与乘方均可类似自运算)
以及一些细节: - 运算两数中只要有一个浮点数,结果就是浮点数;
- 整数相除,即使能除尽,结果也是浮点数;
- Python 内部的机制解决了整数溢出的问题,不用担心。
布尔(bool)与逻辑
首字母大写 True / False.
- 逻辑运算符:与 A and B,或 A or B,非 not A
- 逻辑关系符:等于 ==, 不等于 !=. 其他不赘述。
- 几种逻辑判断例子:
变量 x | x = [] | x = 0 | x = 2 |
---|---|---|---|
bool(x) | False | False | True |
if x: … | False | False | True |
if x is None: … | False | False | False |
序列(sequence)
序列主要包括字符串(str)、列表(list)与元祖(tuple)三类。
- 序列索引规则:
- 索引从0开始,到 N-1 结束。
- 切片:切片的索引是左闭右开的。
- seq[0:2](从 0 到 1)
- seq[2:](从 2 到尾)
- seq[:3] (从头到 2)
- seq[:](全部)
- seq[:10:2](从头到9,每两个取一个)
- seq[::2](全部,每两个取一个)
- 索引允许负数:seq(-1) 与 seq(N – 1) 等同,seq(-3:-1)与 seq(N-3:N-1) 等同。
- 序列通用函数:
- len():返回序列长度。
- +/* :加号用于连接两个序列,乘号重复排列若干次再连接。
- seq1 in seq2:如果 seq1 这个片段可以在 seq2 中被找到,返回 True.
- index:在 seq1 in seq2 为 True 时使用,seq2.index(seq1) 表示 seq1 首次出现于 seq2 中的位置。
- max()/min():返回序列中的最值。如果不是数字,则按 ASCII 码顺序返回。
- cmp(seq1, seq2):比较大小。结果为负,则表示 seq1 较小。
字符串(str)
写于一对双引号或单引号内。用 str() 可以强制转换为字符串。
- 转义:反斜杠。如果强制不解释字符串,在左引号前加字母 r 即可:
r"c:/new"
. - 分割与连接:
**.split()
与**.join()
.
s = " I love Python" # 首位是空格
lst = s.split(' ')
lst1 = '-'.join(lst)
print(lst, '/n', lst1)
['', 'I', 'love', 'Python']
-I-love-Python
- 紧切:
strip()
去掉字符串首尾两端的空格。方法lstrip()/rstrip()
则只切除首端/尾端的空格。
s.strip()
'I love Python'
- 大小写转换:如下几个方法:
- 首字母大写:s.title()
- 全大写:s.upper()
- 全小写:s.lower()
- 句首大写:s.capitalize()
- 格式化:字符串格式化是一种实用功能。通过 .format() 成员函数完成。
'I like {} and {}'.format('Python', 'you')
'I like Python and you'
'{0} + {2} = {1}'.format (10, 20, 'Python ') # 按顺序引用
'10 + Python = 20'
'{0} * {1} = {0}'.format (10, 'Python ') # 编号反复引用
'10 * Python = 10'
格式化控制码:
控制码 | 含义 | 控制码 | 含义 |
---|---|---|---|
原创文章,作者:wdmbts,如若转载,请注明出处:https://blog.ytso.com/275823.html 赞 (0)
uniapp离线打包Android
上一篇
2022年7月21日
【Java面试手册-算法篇】给定一个字符串,请判断是否为回文字符串?
下一篇
2022年7月21日
|