Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言,这里记录一些key takeaways.
0. 第一段Python代码
#!/usr/bin/python
# -*- coding: UTF-8 -*-
print( "你好,世界" )
'''
注1:Python中默认的编码格式是 ASCII 格式,在读取中文时会报错,需在文件开头加入
# -*- coding: UTF-8 -*- 或者 # coding=utf-8
注2:脚本语言的第一行,只对 Linux/Unix 用户适用,用来指定本脚本用什么解释器来执行
#!/usr/bin/python:告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释器;
#!/usr/bin/env python:去环境设置寻找 python 目录,可以增强代码的可移植性
'''
1. 基础语法
1.1 Python 标识符
在 Python 里,标识符由字母、数字、下划线组成,但不能以数字开头。
Python 中的标识符区分大小写。
以下划线开头的标识符有特殊意义: 1)以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;2)以双下划线开头的 __foo 代表类的私有成员,以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。
1.2 行、缩进和换行
所有代码块语句必须包含相同的缩进空白数量。
Python语句中一般以新行作为语句的结束符:1)可以使用斜杠( \)将一行的语句分为多行显示;2)语句中包含 [], {} 或 () 括号就不需要使用多行连接符;3)在同一行中使用多条语句,语句之间使用分号(;)分割;4)print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号**,**。
1.3 变量和数据类型
Python有五个标准的数据类型:
- Numbers(数字):包括int(有符号整型),long(长整型[也可以代表八进制和十六进制]),float(浮点型),complex(复数)
- String(字符串):由数字、字母、下划线组成的一串字符
- List(列表):用**[ ]**标识,支持字符,数字,字符串和列表(即嵌套),有序的对象集合
- Tuple(元组):用**()**标识,内部元素用逗号隔开,不能二次赋值,相当于只读列表
- Dictionary(字典):用{ }标识,由索引(key)和它对应的值value组成,无序的对象集合
#数据类型转换
int(x [,base]) #将x转换为一个整数
float(x) #将x转换到一个浮点数
str(x) #将对象 x 转换为字符串
repr(x) #将对象 x 转换为表达式字符串
eval(str) #用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s) #将序列 s 转换为一个元组
list(s) #将序列 s 转换为一个列表
set(s) #转换为可变集合
dict(d) #创建一个字典,即一个序列 (key,value)元组。
frozenset(s) #转换为不可变集合
chr(x) #将一个整数转换为一个字符
1.4 运算符
# 算术运算符
+ 加 - 两个对象相加
- 减 - 得到负数或是一个数减去另一个数
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串
/ 除 - x除以y
% 取模 - 返回除法的余数
** 幂 - 返回x的y次幂
// 取整除 - 返回商的整数部分(向下取整)
# 比较运算符
# 所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价
== 等于 - 比较对象是否相等
!= 不等于 - 比较两个对象是否不相等
<> 不等于 - 比较两个对象是否不相等(python3 已废弃)
> 大于 - 返回x是否大于y
< 小于 - 返回x是否小于y
>= 大于等于 - 返回x是否大于等于y
<= 小于等于 - 返回x是否小于等于y
# Python赋值运算符
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符c //= a 等效于 c = c // a
# Python位运算符
# 按位运算符是把数字看作二进制来进行计算的
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1
^ 按位异或运算符:当两对应的二进位相异时,结果为1
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1
<< 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0
>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数
# Python逻辑运算符
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值
or x or y 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True
# Python成员运算符
in 如果在指定的序列中找到值返回 True,否则返回 False
not in 如果在指定的序列中没有找到值返回 True,否则返回 False
# Python身份运算符
is is 是判断两个标识符是不是引用自一个对象
is not is not 是判断两个标识符是不是引用自不同对象
1.5 条件与循环语句
#条件语句
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
#While循环语句
while 判断条件(condition1):
执行语句(statements1)……
else 判断条件(condition2):
执行语句(statements2)……
#For循环语句
for iterating_var in sequence:
statements(s)
else:
statements(s)
break语句用来终止循环语句,跳出整个循环,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
continue语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
pass语句是空语句,保持程序结构的完整性,不做任何事情,一般用做占位语句。
实例一
# 例1 输出10到20之间的质数
for num in range(10,20): # 迭代 10 到 20 之间的数字
for i in range(2,num): # 根据因子迭代
if num%i == 0: # 确定第一个因子
j=num/i # 计算第二个因子
print '%d 等于 %d * %d' % (num,i,j)
break # 跳出当前循环
else: # 循环的 else 部分
print num, '是一个质数'
# 例2 循环输出2到100之间的质数
i = 2
while(i < 100):
j = 2
while(j <= (i/j)):
if not(i%j): break #i除以j的余数,能整除则为0 (False),即if true跳出循环
j = j + 1
if (j > i/j) : print i, " 是质数"
i = i + 1
2. 各种数据类型的常用函数和操作
2.1 数值与数学函数
import math #对浮点数的数学运算
import cmath #支持复数的数学运算
#函数 返回值 ( 描述 )
abs(x) 返回数字的绝对值,如abs(-10) 返回 10
ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5
cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,...) 返回给定参数的最大值,参数可以为序列
min(x1, x2,...) 返回给定参数的最小值,参数可以为序列
modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示
pow(x, y) x**y 运算后的值
round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数
sqrt(x) 返回数字x的平方根
#随机数函数 描述
choice(seq) 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数
randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1
random() 随机生成下一个实数,它在[0,1)范围内
seed([x]) 改变随机数生成器的种子seed
shuffle(lst) 将序列的所有元素随机排序
uniform(x, y) 随机生成下一个实数,它在[x,y]范围内
#三角函数 描述
acos(x) 返回x的反余弦弧度值
asin(x) 返回x的反正弦弧度值
atan(x) 返回x的反正切弧度值
atan2(y, x) 返回给定的 X 及 Y 坐标值的反正切值
cos(x) 返回x的弧度的余弦值
hypot(x, y) 返回欧几里德范数 sqrt(x*x + y*y)
sin(x) 返回的x弧度的正弦值
tan(x) 返回x弧度的正切值
degrees(x) 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
radians(x) 将角度转换为弧度
Python数学常量
pi 数学常量 pi(圆周率,一般以π来表示)
e 数学常量 e,e即自然常数(自然常数)
2.2 字符串及其操作
2.2.1 截取
可以使用 [头下标:尾下标] 来截取相应的对象,其中下标是可以是正数(从 左到右,0 开始算起)或负数(从右到左, -1开始算起),下标可以为空表示取到头或尾。[头下标:尾下标] 返回的结果包含头下标,但不包含尾下标。
2.2.2 字符串运算
#操作符 描述
+ 字符串连接
* 重复输出字符串
[] 通过索引获取字符串中字符
[ : ] 截取字符串中的一部分
in 成员运算符 - 如果字符串中包含给定的字符返回 True
not in 成员运算符 - 如果字符串中不包含给定的字符返回 True
r/R 原始字符串 - 除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法
% 格式字符串 - 详见下方2.2.3节
str = 'HelloWorld!'
#示例
print str[2:5] # 输出字符串中第三个至第六个之间的字符串
print str * 2 # 输出字符串两次
print str + "TEST" # 输出连接的字符串
'''以下为输出结果
llo
HelloWorld!HelloWorld!
HelloWorld!TEST
'''
2.2.3 字符串格式化
#字符串格式化符号 描述
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e或%E 用科学计数法格式化浮点数
#示例
print "My name is %s and my age is %d!" % ('Seldon', 24)
>>> My name is Seldon and my age is 24!
#format 格式化函数
'''
str.format()增强了字符串格式化的功能,通过 {} 和 : 来代替 %
可以接受不限个参数,位置可以不按顺序
^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
+ 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格
b、d、o、x 分别是二进制、十进制、八进制、十六进制
'''
#数字 格式 输出 描述
3.141592 {:.2f} 3.14 保留小数点后两位
-1 {:+.2f} -1.00 带符号保留小数点后两位
2.71828 {:.0f} 3 不带小数
1000000 {:,} 1,000,000 以逗号分隔的数字格式
0.25 {:.2%} 25.00% 百分比格式
1000000000 {:.2e} 1.00e+09 指数记法
2.2.4 转义字符
转义字符 描述
\(在行尾时) 续行符
\\ 反斜杠符号
\' 单引号
\" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000 空
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,y 代表 0~7 的字符,例如:\012 代表换行。
\xyy 十六进制数,以 \x 开头,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出
2.3 列表及元组
1)元组(tuple)使用小括号,列表[list]使用方括号;2)元组类似不能修改元素的列表,两者的部分操作一致;3)任意无符号的对象,以逗号隔开,默认为元组。
#元素的读取,添加和删除
list[1:5] #取列表的第2个到第5个元素
list.append('Google') #使用 append() 添加元素
del list[2] #删除列表中的第3个元素
#脚本操作符
+ 组合
* 重复
3 in [1, 2, 3] >>>True 元素是否存在于列表中
for x in [1, 2, 3]: print x, >>>1 2 3 迭代
#函数
cmp(list1, list2) 比较两个列表的元素,python3已移除
len(list) 列表元素个数
max(list) 返回列表元素最大值
min(list) 返回列表元素最小值
list(seq) 将元组转换为列表
tuple(seq) 将列表转换为元组
#方法
list.append(obj) 在列表末尾添加新的对象
list.count(obj) 统计某个元素在列表中出现的次数
list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj) 将对象插入列表
list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj) 移除列表中某个值的第一个匹配项
list.reverse() 反向列表中元素
list.sort(cmp=None, key=None, reverse=False) 对原列表进行排序
## reverse = True 降序, reverse = False 升序(默认)
2.4 字典
…TBC
References and Resources:
以上就是“Python:基础知识笔记”的全部内容,希望对你有所帮助。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至优快云官方,朋友如果需要可以直接微信扫描下方优快云官方认证二维码免费领取【保证100%免费】。
”的全部内容,希望对你有所帮助。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至优快云官方,朋友如果需要可以直接微信扫描下方优快云官方认证二维码免费领取【保证100%免费】。