python学习之路:语法基础
Python:简单
适合领域: web网站和各种网络服务
系统工具和脚本
作为“胶水”语言把其他语言的开发模块包装起来
不适合:贴近硬件的开发,移动开法,游戏开发:c/c++
python对比:
c:编译为机器码,运行速度非常快,代码量非常多
java:编译为字节码,快,多
python:解释执行,慢,少。
python语法:
注释: “#” 注释一行
字符串可以用单双引号来表示
\n:表示换行 \t表示一个制表符
python中的raw字符串和多行字符串(三个单引号)
例: r‘(~-~)/’ //这里用了r后就不需要转义了 ,但是这个表示方法只能用在一行
‘’‘line1
line2
line3 ’‘’
python支持对整数和浮点数直接进行四则混合运算,不需要考虑类型,因为是动态变量
python中的布尔类型:
与运算:and(都为true才true) 或运算(or 只要有true就为true) 非运算(not True)
python创建list:
L=[‘mial’,’asd’,’qwe’] //list是一种有序的集合,可以随时添加和删除其中的元素
print L[0] //从0开始检索
print L[-1] //从倒叙开始访问,-1代表的就是qwe -2代表的是asd
//添加用append(‘paul’)方法 插入则用 L.insert(0, ‘paul’)
//删除用:pop():删除最末尾的东西, pop(0):删除检索位置在0上的数据
python创建tuple(元祖):
元祖与list的不同时,一旦创建,元祖内的内容就无法改变
t=(‘adam’,’lisa’,’bart’) tuple没有append(),insert(),pop()方法
//如何让tuple变
t=(‘a’,’b’,[‘A’,’B’]),此时我们就可以去改变【】中的值来变相的改变tuple了
python的if语句
age=20
if age >=18:
print ‘your age is ‘,age //注意缩进为4个空格,不要混用tab
print ‘adult’
python的if-else语句
if age >= 18:
print ‘adult’
else:
print ‘teenager’
python的for语句
L = [‘Adam’, ‘Lisa’, ‘Bart’]
for name in L: //这里需要注意in这个介词
print name
python的while循环
N = 10
x = 0
while x < N:
print x
x = x + 1
python的break循环的语句
sum = 0
x = 1
while True:
sum = sum + x
x = x + 1
if x > 100:
break
print sum
python的多重循环
for x in [‘A’, ‘B’, ‘C’]:
for y in [‘1’, ‘2’, ‘3’]:
print x + y
python的dict(类似于键值对)
d = {
‘Adam’: 95,
‘Lisa’: 85,
‘Bart’: 59
}
可以通过 len() 来查看长度
如何输出 print d[‘Adam’] //==> 95
先判断 if ‘Paul’ in d:
print d[‘Paul’]
用方法输出
print d.get(‘Bart’) //如果这里没有时,返回None
特点:1.查找速度快,但是消耗大 2.排序无序 3.key不可变
dict的更新操作:
d[‘Paul’]=72 //如果key存在,赋值会覆盖以前值
dict的遍历操作:
for key in d:
print key //再一次告诉我们没有什么事是for无法解决的
python的set
set持有一系列的元素,但是这些元素互相之间不重复,类似于dict的key
创建方法:
s=set([‘A’,’B’,’C’]) //即使是s=set([‘A’,’B’,’C’,’C’])最后打印出来的也和前面一样,因为hi不能重复的
访问方法:
‘A’ in s //==>true 需要注意的是,大小写需区分
用处:
x = ‘???’ # 用户输入的字符串if x in weekdays:
print ‘input ok’
else:
print ‘input error’
//用于提前准备好的东西,一些长期不变的
遍历的方法:
for name in s:
print name
添加元素:用add方法
s=set([1,2,3])
s.add(4)
s.remove(4)
python的函数
//常用 int(‘123’) ==>123 abs(-20) ==>20 cmp(2,1) ==>1 str(123) ==>’123’
//编写函数
def my_abs(x):
if x >= 0:
return x
else:
return -x //一定要注意的是':' 很多地方都会用
import math
def move(x, y, step, angle):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
x, y = move(100, 100, 60, math.pi / 6) //如果不这样指定返回值是一个tuple
递归函数:
def fact(n):
if n==1:
return 1
return n*fact(n-1) //递归,函数中含有函数
def power(x, n=2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s //这里的n=2是一个默认参数,不写也可以,默认参数只能写在后面
//可变参数
def fn(*args):
print args //这里的arg的个数是可以变的,可以用来求平均值的地方
python的切片操作
1.对list和tuple切片
L=['Lisa','Bart','Adam','Paul']
L[0:3] //只取前三个元素 L[:3] //0还可以省略 L[:] //表示从头到尾
2.对字符串切片
‘ABCDEFG’[:3] //切取前四个
python的迭代操作(Iteration)
迭代:对list or tuple,我们通过for循环来遍历整个历史,就称为迭代
>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
>>> for index, name in enumerate(L):
... print index, '-', name //enumerate()函数表明,索引不是只按照index去寻找,而是通过函数来的
//针对dict的迭代,因为其本身就是key-value型,所以不用管
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
print d.values()
# [85, 95, 59]
for v in d.values(): print v
for v in d.itervalues():
print v //作用相同
//针对dict,同时迭代key和value
for key,value in d.items():
print key, ':', value //key and values 同时迭代
python生成列表
//苦难的方法啊,循环
>>> L = []
>>> for x in range(1, 11):
... L.append(x * x) //生成list
列表的生成方法:
>>>L= [x * x for x in range(1, 11)]
//加判断式
>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]
//多层的表达式
>>> [m + n for m in 'ABC' for n in '123']
['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']
上一篇: visdom 可视化使用
下一篇: 【imblearn安装及相关错误解决】