简介
Python(蟒蛇)由Guido 荷兰人于1991年发明。
优点:语法简单易用、免费开源、可移植性、面向对象、解释性、丰富的库、规范的代码。可用于web应用、科学计算、游戏、桌面软件、服务器软件
缺点:运行速度稍慢、中文资料少、市场少、框架多
注释
#单行注释
'''
多行注释
'''
"""
多行注释
"""
设置文件编码
有时使用文本编辑器编写的python文件在显示中文出现乱码,这是因为文本编辑器使用的编码格式不是utf-8,因此我们需要设置文件的编码格式
#在python文件的第一行加上如下语句,注意需要写#号
# -*- coding: utf-8 -*-
或
#coding=utf-8
打印
#输出换行
print(1)
print(2)
结果:
1
2
#不换行输出
print(1, end=" ")
print(2, end=' ')
结果:
1 2
#打印变量
a = 'python'
b = 1
print("name %s"%a) -> name python
import math
print('PI的近似值:%.3f'%math.pi) -> PI的近似值:3.142
print('learn %4s with %5d day'%(a,b))
结果:
learn python with 1 day
#格式化字符串
print('{0} 和 {1}'.format('Google', 'Runoob')) -> Google 和 Runoob
print('{name}今天{tm}'.format(tm='不开心',name='宝宝')) -> 宝宝今天不开心
print('三原色:{0}、{1}、{end}'.format('红','绿',end='蓝'))->三原色:红、绿、蓝
#打印裴波纳契数列
a,b = 0,1
while b < 100:
print(b, end=' ')
a,b = b, a+b
结果:
1 1 2 3 5 8 13 21 34 55 89
数据类型
Number类型
包括整数、浮点数、复数
#数学函数
abs(x) 返回数字的绝对值,如abs(-10) 返回 10
ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5
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。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择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) 将角度转换为弧度
bool类型(True | False)
a = True
if (a):
print('right')
String类型
单引号或双引号定义单行字符串
三引号’’’ ‘’’ 或 “”" “”"定义多行字符串
s1 = 'hello' 等价于 s1 = "hello"
s2 = '''多行
第二行
'''
print(s2)
#字符串的截取
s1[0:-1] -> hell 负数表示从末尾开始截取
s1[0:-2] -> hel
s1[0] -> h
s1[1:3] -> el
s1[1:] -> ello
s1 * 2 -> hellohello
s1 + '6' -> hello6
字符串内建函数
str = 'hello Python 666'
capitalize() 将字符串的第一个字符转换为大写,str.capitalize()
center(width, fillchar) 返回一个指定的宽度width居中的字符串,fillchar为填充的字符,默认为空格。
ljust(width[, fillchar]) 返回一个原字符串左对齐,并使用fillchar填充至长度width的新字符串,fillchar默认为空格。
zfill(width) 返回长度为 width 的字符串,原字符串右对齐,前面填充0
count(str, beg= 0,end=8) 返回str在string里面出现的次数,beg或者end指定则返回指定范围内str出现的次数
endswith(suffix, beg=0, end=len(string)) 检查字符串是否以 obj 结束
startswith(prefix, beg=0, end=len(string))检查字符串是否以 obj 开头
find(words, beg=0, end=len(string)) 检测words是否包含在字符串中
rfind(words, beg=0,end=len(string)) 检测words是否包含在字符串中,从右边开始查找
index(words, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在字符串中会报一个异常.
isalnum() 所有的字符是否为文字(非符号)
isalpha() 所有的字符是否为字母
isdigit() | isnumernic() 所有的字符是否为整数(不包括小数点)
isdecimal() 检查字符串是否只包含十进制字符
islower() 字符串中的所有字母是否全部是小写
isupper() 字符串中的所有字母是否全部是小写
isspace() 如果字符串中只包含空白,则返回 True,否则返回 False.
len(string) 返回字符串的长度
lower() 所有字符转换为小写
upper() 所有字符转换为大写
swapcase() 将字符串中大写转换为小写,小写转换为大写
title() 返回"标题化"的字符串,所有单词都是以大写开始,其余字母均为小写
max(str) 返回字符串 str 中最大的字母。
min(str) 返回字符串 str 中最小的字母。
replace(old, new [, max])将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。
split(substr, string.count(substr)) 截取字符串,如果第二个参数有值,则仅截取num+1个子字符串
List类型
写在方括号[ ]之间,用逗号分割的元素列表
list = ['ceo', 43, "cto", 66, 23.7, True]
list2 = [45, 35, 'haha']
#截取同字符串的截取规则一样
list[0]
list[2:4]
list[1:-2]
list * 2
list + list2
#改变列表的元素
a = [1, 2, 3]
a[0] = 4 -> [4, 2, 3]
a[1:3] = [5, 6] -> [4, 5, 6]
a[1:3] = [] -> [4] 等价于 del a[1:3]
#List常用方法
list.append(obj) 在列表末尾添加新的对象
list.count(obj) 统计某个元素在列表中出现的次数
list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj) 将对象插入列表
list.pop(index) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj) 移除列表中某个值的第一个匹配项
list.reverse() 反向列表中元素
list.sort( key=None, reverse=False) 对原列表进行排序
list.clear() 清空列表
list.copy() 复制列表
len(list) 返回list元素个数
Tuple元组类型
元组与List类似,不同之处在于Tuple元素不能修改,写在小括号()里,用逗号隔开
元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用
tuple = ('tuple', 55, 34.2, True)
tuple2 = '54',54,Flase,'haha' 不用()也可以
#元组截取方式跟String和List相同
tuple[1:3] -> (55, 34.2)
del tuple2 删除元组
tuple(list) 将List转换成Tuple
len(tuple) 计算元组元素个数
Set集合类型
Set是有一个或多个形态各异的大小整体组成的,用{}或set()函数创建集合
s = {'one', 2, 3.9, 'last'}
s = set(value)
a = set('adcbaabd') -> {'a', 'd', 'c', 'b'}
b = {'c', 'b', 'f', 'f'} -> {'c', 'b', 'f'}
a - b -> {'a', 'd'} 差集
a | b -> {'a', 'd', 'c', 'b', 'f'} 并集
a & b -> {'c', 'b'} 交集
a ^ b -> {'a', 'd', 'f'} a和b中不同时存在的元素
a.add('g') -> {'a', 'd', 'c', 'b', 'g'}
a.update({'gt',4}) -> {'a', 'd', 'c', 'b', 'g', 'gt', 4}
a.remove('g') -> {'a', 'd', 'c', 'b', 'gt', 4}删除的元素不存在会报错
a.discard('kk') -> {'a', 'd', 'c', 'b', 'gt', 4}删除的元素不存在不会报错
len(a) -> 返回集合a中的元素个数
Dictionary字典类型
列表是有序的对象集合,字典是无序的对象集合,字典中的元素是通过键来存取的
dic = {}
dic['key1'] = 54
dic[2] = 43.3
dic[3.2] = "value3.2"
print(dic['key1']) -> 54
print(dic[2]) -> 43.3
print(dic[3.2]) -> 'value3.2'
print(dic) -> {'key1':54, 2:43.3, 3.2:'value3.2'}
print(dic.keys()) -> ['key1', 2, 3.2]
print(dic.values())-> [54, 43.3, 'value3.2']
dic.clear() -> {}
del dic['key1'] 删除字典元素
del dic 删除字典
len(dic ) 返回字典元素个数
数据类型转换
int(x [,base]) 将x转换为一个整数
float(x) 将x转换到一个浮点数
complex(real [,imag]) 创建一个复数
str(x) 将对象 x 转换为字符串
repr(x) 将对象 x 转换为表达式字符串
eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s) 将序列 s 转换为一个元组
list(s) 将序列 s 转换为一个列表
set(s) 转换为可变集合
dict(d) 创建一个字典。d 必须是一个 (key, value)元组序列。
frozenset(s) 转换为不可变集合
chr(x) 将一个整数转换为一个字符
ord(x) 将一个字符转换为它的整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串
使用**type(var)**方法查看变量类型,如
a = 15
type(a) int
b = True
type(b) bool
运算符
算数运算符: + - * / % **(幂) //(向下取整除)
比较运算符:== != > < >= <=
赋值运算符:= += -= 8= /= %= **= //=
二进制运算:& | ^ << >> ~ (取反)
逻辑运算符:and or not
成员运算符:in not in 用于字符串、列表、元组
身份运算符:is not is 用于比较2个对象的存储单元,id(a)函数用来获取对象a的内存地址
条件控制及循环
if语句
if condition1:
do1
elif condition2:
do2
elif condition3:
#嵌套
if condition4:
do1
elif condition5:
do2
else:
doElse
else:
doElse
while循环
count = 0
while count < 5:
count += 1
if count ==3:
break
print(count, end=' ')
结果:
a b d e
for循环
list = ['a', 'b', 'c', 'd', 'e']
for word in list:
if word == 'c':
continue
print(word, end=' ')
结果: a b d e
#range函数生成数列
for i in range(5):
print(i, end=' ')
结果:0 1 2 3 4
#range指定区间
for i in range(5, 9):
print(i, end=' ')
结果:5 6 7 8
#range指定区间和步长
for i in range(5, 14, 2):
print(i, end=' ')
结果:5 7 9 11 13
it = iter(list)
for x in it:
print(x, end=" ")
结果: a b c d e
while True:
try:
print(next(it), end=' ')
except Exception:
break
结果: a b c d e