Python 学习笔记(自用)(有C++基础)(连载)
来源:互联网 发布:怎样制做淘宝原图 编辑:程序博客网 时间:2024/06/16 00:24
我是在廖雪峰的官方网站上学得,讲的不多不详细,细节请自行百度
1 优缺点
优点:代码量少,“优雅,明确,简单”
缺点:速度慢,因为Python是解释型语言,相对C这种直接编译的语言就慢很多
用中文中的’成语‘等可以很好的类比
2 数据类型和输入输出
python中数据类型是动态的即不用像c一样指定 int a=13,而可以a=13 解释器会根据实际情况来解释变量类型
print()是输入函数,py中用单引号代替了双引号,也就是字符和字符串看起来没有区别
print(' my name is %s and I\'m %d years old'%(名字,年龄),'nice to meet you\n')
printf("my name is %s and I\'m %d years old nice to meet you\n",名字,年龄)
以上是PY和C的同一个输出语句 对比一下
input()是输入函数,直接读字符串
a=input('输入一个整数')
上面一句话等价于C中的
char a[10];
printf("输入一个整数\n")
scanf("%s",a)
那么很明显 a是一个字符串
在py中如果你输入了 13
然后再写 print(2×a)
输出结果是1313
因为 a默认是字符串
要完成输出26 可以这样写
print(2*int(a))
Py中用数据类型函数对字符串进行转换
3 list和tuple
list 结合了数组和链表(有兴趣可以研究以下底层结果)
L=['a','b','c']
L[0],L[1]....L[len(L)-1]
L[-1]=L[len(L)-1]
.
.
.
L.append('d')
L.insert(4,'e')
L.pop()
L.pop(0)
二维数组可以用元素是链表的链表
以此类推
tuple可以看成const的list
4 条件语句
if a>14:
pass
elif a>12:
pass
else :
pass
5 循环语句
有for和while
for i in range(100):
print(i+1)
n=1
while n<=100:
print(n)
n+=1
6 dict 和 set
dict叫做字典和stl中的map一样,键值要是不可变的
7 定义函数
def my_abs(x):
if x>=0:
return x
else:
return -x
没返回值自动返回None
8 函数参数
和c++一样,参数可以设置默认值
同时还有可变参数(数组),关键字参数(map)
9 切片
操作对象是一段区间,参数是3个(left,right,dx)
左端点,右端点,间隔
比如取100内的偶数
L=list(range(101))[0:100:2]
10 迭代
和c++一个意思,
可以有多个迭代器
for k,v in dict1.items() :
print(k,'=',v)
11 列表生成式
即生成一个满足一定条件的列表
[i*i for i in L if L[i]>=0]
i×i是函数
(双重)循环指定迭代内容和条件决定了列表内容
12 生成器
L = [x * x for x in range(10)]
这是列表生成式,但如果一个列表超级长,而用的时候只使用很少的一部分,这样就浪费了大量空间g = (x * x for x in range(10))
这是构造一个生成器g,通过next(g)得到运行一次的结果并记录>>> next(g)0>>> next(g)1>>> next(g)4>>> next(g)9>>> next(g)16>>> next(g)25>>> next(g)36>>> next(g)49>>> next(g)64>>> next(g)81>>> next(g)Traceback (most recent call last): File "<stdin>", line 1, in <module>StopIteration
按照优雅的原则我们会用
for n in g:
print(n)
这样表示
那自己要如何写生成器呢
这里用到了yield 有点像return
这里挂上一个杨辉三角
def yanghui(n):
k=1
L=[1]
while k<=n:
yield L
L.insert(0,0) #首尾补0方便列表生成
L.append(0)
len1=len(L)
L=[a+b for a,b in zip(L[0:len1-1],L[1:len1])] #L[i][j]=L[i-1][j-1]+L[i-1][j]
k=k+1
for n in yanghui(10):
print (n)
- Python 学习笔记(自用)(有C++基础)(连载)
- 【自用】javanote170704(java基础学习)
- Android 开发基础 学习中!!! (自用)
- c 函数例子(学习自用)
- pcap学习(自用)
- vue学习(自用)
- 嵌入vlc(自用笔记)
- Python 学习笔记(一) python基础
- (连载)Java基础学习002
- (连载)Java基础学习004
- (连载)Java基础学习005
- (连载)Java基础学习007
- (连载)Java基础学习008
- Python学习笔记(基础学习)
- C++&C学习笔记(一)(基础)
- 学习java疯狂讲义笔记(连载)
- Vim配置#基础开发配置(自用)
- python 学习笔记(-) 基础开端
- % invalid END header (bad central directory offset) 问题解决
- 使用增强学习AI玩赛车游戏(Gym-TORCS)
- CCF 工资计算(Java)
- 实验吧-程序逻辑问题writeup
- 闭包
- Python 学习笔记(自用)(有C++基础)(连载)
- 游戏挂机小项目 每天100¥
- openstack学习
- Ajax实现分页二
- 数据库分区分表
- 开贴宣言
- 安装64位oracle用PLSQL Developer连接报错问题
- 公众号“今日作文素材”文章列表 (20170826-20170901)
- 面试5- se