linux python 命令
进入命令: pyhton
退出命令:exit() 或 ctrl+z
python file.py 解释py脚本
源代码: file.py
字节码: file.pyc 已编译
import py_compile
py_compile.compile("file.py")
优化后的源文件:file.pyo
python -O -m py_compile file.py
或在 file.py 加 标准写法
\#!/usr/bin/python
...code...
linux解释py
chmod +x file.py
./file.py # ./ 表示查找#!/usr/bin/python工具解释
#或直接 python file.py
运行 pyc pyo 比直接解释py快
输出 print
3.3:print (‘str’)
2.6:print ‘str’
strHello = "the length of (%s) is %d" %('Hello World',len('Hello World'))
print (strHello)
print("%.2f + %.2f =%.2f" %(num1, num2, num1+num2))
# %() 多个值须加括号
print(name + " is " + str(age) + " old") # str()将其转为字符串
变量及运算
a = 12
id(a) # 16698208 获取a的地址
b = 12
id(b) # 16698208 z值相同则 与a的地址相同(引用)
# 但 执行 a = a+1后 a地址改变指向 13,而 b不变
type(num1)
type(12) ##显示引用类型 int
a = 123L ##将 123 存取为 long int
复数 a = 2+3j
字符串 a = 'str'
a = "str"
a = """str""" 三重引号(或单引号):注释,doc数据
str="abcde" 字符串 切片
则 str[1:4] ## bcd 下标1开始到4之前
str[:3] str[3:] ## abcd de
str[::2] ## ace 从头至尾 +2 取,2为步长值
str[-1] ## e 最右为-1
str[-4:-1] ## bcd 默认从左往右取
str[4:1:-1] ## dcb 倒着取
整除法 3.0//2 ## 1.0 取整数
幂运算 3**2 ## 9 3^2
逻辑运算符:
与 and
或 or
非 not
global 变量名 ## 强制声明为全局变量
方法
raw_input("请输入一个整数:") 从键盘上读取原始数据 字符串(包括方向键 删除键)
int(raw_input()) 强制转换为int
help(list.append) 查看帮助 q 退出,必须是list
help(len)
range(i,j[,步进值])
i为初始值,不选则默认为0 ## range(10) 0-10
j为终值
步进值默认为1
模块
import funtion ## function.py
function.add(2,5) ## 调用函数
若导入文件与系统文件同名,则先引入指定目录(默认同目录下)的py文件
包
创建一个包名文件夹
在该文件夹下创建__init__.py文件
在文件夹内存放脚本文件或已编译脚本
导入: import pack.mod
# pack.mod.fun()
或 import mod as m
m.fun()
或 from mod import fun
fun()
__name__
在py文件中若被自己调用则值为__main__
若被其他py import调用则值为被调用的文件名
例子 :
FUNCTION.py
#!/usr/bin/python
def machine(x,y='milk'):
print('cost ' + str(x) + ' to buy ' + y)
# if use python FUNCTION.py the __name__ is __main__
# if FUNCTION.py is used by other py, the __name__ is FUNCTION
if __name__ == '__main__':
print('Test the function()...\n')
machine(12)
print('\nComplete!')
IMPORT.py
#!/usr/bin/python
import FUNCTION
print('Testing the IMPORT...\n')
FUNCTION.machine(9999,'computer')
print('\nComplete!')
序列(列表 元组 字符串)
len(str) ##序列长度
+ ##连接两个序列, str1+str2 拼接
* ##重复序列元素 str1*3 重复3次 "#"*20
in ## 'bc' in str True // not in
max() / min() ## max(str) 取最大字符
cmp(str1, str2) ## 1 则 str1 > str2
## -1 则 str1 < str2
## 0 则 str1 == str2
在内存分配上 python 不同于c语言指针,字符串和元组是不可修改的,
当给变量重新赋值后,该变量的地址也将发生改变
元组 () 也可切片
user = ("Tom", 25, "boy")
则 user[0] ## tom
user[1] = 26 ## 该语句不能被执行,元组不可修改
但user = ("Tom", 26, "boy")可以执行,不过地址发生了改变
name, age, gender = user ## name=Tom age=25 gender=boy
赋值方法也可以这样:a,b,c = (1,2,3)s
一个元素 的元组 a = ("Tom",) //须加个逗号
列表 []
list = ['Tom', 'Lucy', 'Jack', 25]
list.append("info") 添加
list.remove("Tom") 或 del(list[0]) 删除
list[2] = 123 修改 但list地址不变 list[2]地址改变
25 in list 查找
字典 (哈希表)
t1 = ["name", "age", "gender"]
t2 = ["Tom", 25, "boy"]
zip(t1,t2) ## [('name', 'Tom'), ('age', 25), ('gender', 'boy')]
dic = {
'name':'Tom', 'age':25, 'gender':'boy'}
dic[