- python要求严格缩进,否则会报错(尤其是循环判断语句)
- #!usr/bin/python :linux/unix适用,用在脚本语言第一行,指定本脚本用什么编译器编译
#!usr/bin/env python :为防止用户没有将python安装在usr/bin里,系统会先到env设置里找到python安装路径,再在该路径下调用解释器
有了这句之后再加上权限就可以直接./运行程序
- pyhon中单引号、双引号作用相同,都可表示字符串,(可理解为python中没有字符的说法,除转义字符等)
他们的区别在于如果字符串中有‘ ’则用“ ”表示,反之,字符串中有“ ”则用‘ ’表示;否则得用转义字符
三引号作用时可以换行赋值
- .pkl文件是python用来保存文件的
python 打开文本文件用'r',打开二进制文件用'rb'
# -*- coding: UTF8 -*-
# cPickle是python2系列用的,3系列已经不用了,直接用pickle就好了
import pickle
# 重点是rb和r的区别,rb是打开2进制文件,文本文件用r
f = open('itchat.pkl','rb')
data = pickle.load(f)
print(data)
-
Python 模块
Python文件,包含python对象定义和语句。import导入;from 模块 import...从模块导入一部分
- r' ':r加在字符串之前让改字符串里的转义字符失去转义作用,而\r为转义字符,表示将光标位置回退到本行开
- .T:对矩阵转置
a
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
a.T
array([[1, 4, 7],
[2, 5, 8],
[3, 6, 9]])
-
python中与或非:and、or、not
-
**:幂运算符
>>> 2**3
8
-
/:除,而//整除
- python3中int为动态长度
理论上是任意长度,只要内存足够大.因为python3处理整数是用结构:
struct _longobject {
PyObject_VAR_HEAD
digit ob_digit[1];
};
假设要存123456789,(假设ob_digit数组中每个元素只能存3位数)则ob_digit[0]=789,ob_digit[1]=456,ob_digit[2]=123低位存于低索引下。所以可以直接进行大整数运算如:12345**10000,不过时间还是很长。处理大整数幂模就简单了很多,都不用使用费马小定理,直接用pow函数.计算2**n%(1e9+7):
print( pow(2,int(input()),10**9+7) )
-
Python 列表[List]
list1 = ['physics', 'a', 2019]
python中最基本的数据结构,数据项可以有不同的数据类型。可以索引(list1[0])、加(list1.append(2))、截取(list1[-2]、list1[1:])、删除(del list1[0])
-
Python 元组(tuple)
tup = ('physics', 'a', 2019)
用()表示,与列表类似,只是不能修改。 所以删除del tup为删除整个元组,而不能删除某个元素。
任意无符号的对象,以逗号隔开,默认为元组,如下实例:
#!/usr/bin/python
print ('abc', -4.24e93, 18+6.6j, 'xyz')
x, y = 1, 2
print ("Value of x , y : ", x,y)
元组中只包含一个元素时,需要在元素后面添加逗号
tup1 = (50,)
-
Python 字典(Dictionary) {键值对}
dict2 = { 'abc': 123 , 98.6: 37 }
可变容器模型;可存储任意类型;由键值对构成,由键访问、修改、删除值;
键必须不可变,所以可以用数字,字符串或元组充当,列表不行。值无限制。同一键不能出现两次,否则只算后一次。
-
Python标准输入输出
#raw_input()读取一行,返回一个字符串(去掉结尾换行符)
str = raw_input("请输入:")
#input()与raw_input()功能相似,但它可以接受表达式,并将值返回
str2 = input("请输入:")
#输出
print ("你输入的内容是: ", str)
-
文件操作
#打开文件file object = open(file_name [, access_mode][, buffering])
fo = open("foo.txt", "w")
## 关闭打开的文件
fo.close()
#File对象的属性
print "文件名: ", fo.name
print "是否已关闭 : ", fo.closed
print "访问模式 : ", fo.mode
print "末尾是否强制加空格 : ", fo.softspace
#write()可将任何字符串写入一个打开的文件,末尾不加\n
fo.write( "write!\n")
#read([count])方法从一个打开的文件中读取一个字符串
str = fo.read(10)
#创建不存在的文件
fnew = open("a.txt",'w+')
#读取一行
fstr = fnew.readline()
fcontxt = fnew.readlines()#返回一个队列
#创建目录
#import os
if not os.path.exsist("./data"):
os.mkdir("./data"()
# 得到文件夹下的所有文件名称
filepath = "./data" # 添加路径
filename = os.listdir(filepath) # 得到文件夹下的所有文件名称
python中的“无穷”
Max=float('inf')
Min=float('-inf')=-float('inf')
-
type()获取变量类型
>>> a=5
>>> type(a)
<class 'int'>
>>> a=5
>>> id(a)
1930390400
-
id()获取变量地址
-
range()函数语法
range(start, stop, step)
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
实例
>>>range(10) # 从 0 开始到 10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11) # 从 1 开始到 11
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5) # 步长为 5
[0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3) # 步长为 3
[0, 3, 6, 9]
>>> range(0, -10, -1) # 负数
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> range(0)
[]
>>> range(1, 0)
[]
以下是 range 在 for 中的使用,循环出runoob 的每个字母:
>>>x = 'runoob'
>>> for i in range(len(x)) : ... print(x[i]) ... r u n o o b
>>>
- arange()函数语法
与range()函数用法类似
不同点:
1、arange()需要引入:
import numpy as np
2、arange()的返回时array对象,而range返回的是list类型