Python 学习笔记(第一周)

来源:互联网 发布:cocos2dx三消游戏源码 编辑:程序博客网 时间:2024/06/07 05:16

一 hello World

#!/usr/bin/env python或者#!/usr/bin/pythonprint("Hello World!")

Python 是解释型语言,执行时需要让系统了解是用哪种解释器哪种格式解析文件,所以要加#!/usr/bin/python
这两种写法都行,但是推荐第一种,优点是可以全局搜索python环境变量,防止python安装在其他目录使用道其他版本python。

二 变量

python name = "hello world!"shell      name="hello world!"c++      String name = "hello world!"

Python 定义变量无需定义数据类型

变量定义规则:
数字/字母/下划线 任意组合
数字不能开头
不能包含关键字

约定规则:
下划线隔开单词或者驼峰

三 编码

显示告诉Python解释器用什么编码来执行代码。
Python3默认支持Unicode编码,所以默认支持中文,字符两个字节表示。但是Python2没有默认支持Unicode,所以没有默认支持中文,需要先解码,需要添加字符集。
如果在文件开头加上如下语句,可以把文件转成UTF-8编码。
# -- coding: utf-8 --
存一个英文字符1个字节ascii
存一个汉子字符2个字节 unicode

Unicode兼容GBK2312和UTF-8,但是GBK2312和 UTF-8互不兼容,不能直接互转,需要把Unicode当媒介,从GBK2312转Uniclde再从UNicode转GBK2312

四 交互

input() ——Python3
raw_input()—-Python2
两个函数功能完全一样。
格式化输出:
print(” %s %d %f ” % (var1,var2,var3))
—%s: string
—%d: integer
—%f:float
Python是强类型语言,类型转换方法:类型(var)
如:int(var)
打印数据类型 print(type(var))

五 循环

while循环

while True:    passelse:    pass

for循环

for i in range(x):    pass

六 python库路径

import sysprint(sys.path)

[‘/home/justin18chan/PycharmProjects/untitled/sys.py’] 1 2 3
‘/usr/lib/python35.zip’, ‘/usr/lib/python3.5’, ‘/usr/lib/python3.5/plat-x86_64-linux-gnu’, ‘/usr/lib/python3.5/lib-dynload’, ‘/usr/local/lib/python3.5/dist-packages’, ‘/usr/lib/python3/dist-packages’

orprint(sys.argv,1,2,3) #打印当前文件带参数绝对路径/usr/bin/python3.5 /home/justin18chan/PycharmProjects/untitled/sys.py

Python相关环境变量,import导入相关库时,会到这些目录当前路径去寻找,然后去全局变量路径寻找。
其中,一般Python标准库放在/usr/lib/pythonx.x/目录下,

七模块导入

创建文件名不能与已有模块名重名,导入模块时,会首先到当前路径寻找模块,保存文件名如果与要导入模块名一样,会寻找当前文件,导致错误。
1. sys模块
2. os模块

import oscmd_res = os.system("du -h") # 调用系统命令,不保存结果print(cmd_res)
4.0K    ./.idea/inspectionProfiles36K ./.idea44K .0 #返回值是0,原因是调用os.system(),输出直接打印到屏幕,返回值并不是内容而是返回直接成功与否的结果。
cmd_res = os.popen("du -h")# 调用系统命令popen,可以保存数据print(cmd_res)<os._wrap_close object at 0x7ff4f88abeb8>  #返回数据保存对象地址cmd_res = os.popen("du -h").read()# 返回对象调用read()函数取数据print(cmd_res)   #打印保存数据4.0K    ./.idea/inspectionProfiles36K ./.idea44K .

八 运算

  1. 三元运算
x = a if a>b else b

格式可以这样看x = a if (a > b) else b
如果 a> b 则 x = a
如果 a

>>>'€20'.encode('utf-8')b'\xe2\x82\xac20'>>> b'\xe2\x82\xac20'.decode('utf-8')'€20'

注意可以使用encode(编码类型)和decode(解码类型)进行编解码,默认使用utf-8。

九 列表

基本操作:

索引切片追加删除长度切片循环包含

列表与切片

names = ["ZhangYang","Guyun","Xiangpeng"]#注意:使用列表list存储字串,需要用引号包含起来。print(names)print(names[0])print(names[1:3])#注意:列表切片,索引原则顾头不顾尾print(names[-1])#注意:-号表示从后开始数,-1即表示最后一个数print(names[-1:-3])print(names[-3:-1])#注意:上面两个的输出不同,列表取值是从左边往右边取,所以从-3到-1print(names[-3:])#注意:如果要取到最后一个数,直接使用:表示就可以。`这里写代码片`
['ZhangYang', 'Guyun', 'Xiangpeng']ZhangYang['Guyun', 'Xiangpeng']Xiangpeng[]['ZhangYang', 'Guyun']['ZhangYang', 'Guyun', 'Xiangpeng']
print("插入方法演示")print(names)names.append("Chenzhonghua")print(names)#注意:追加append到列表末尾names.insert(1,"Xiedi")print(names)#注意:插入使用insert(index,"插入内容")print("删除方法演示")print(names)names.remove("Chenzhonghua")print(names)#注意:删除方法1 remove("删除内容“)del names[1]print(names)#注意:删除方法2 del var[index]names.pop(1)print(names)#注意:删除方法3 pop(index) 弹栈方式,不加参数默认弹出最后一个
插入方法演示['ZhangYang', 'Guyun', 'Xiangpeng']['ZhangYang', 'Guyun', 'Xiangpeng', 'Chenzhonghua']['ZhangYang', 'Xiedi', 'Guyun', 'Xiangpeng', 'Chenzhonghua']删除方法演示['ZhangYang', 'Xiedi', 'Guyun', 'Xiangpeng', 'Chenzhonghua']['ZhangYang', 'Xiedi', 'Guyun', 'Xiangpeng']['ZhangYang', 'Guyun', 'Xiangpeng']['ZhangYang', 'Xiangpeng']
names1=[["Bbabi","Mesi"],"ZhangYang","Guyun","Xiangpeng"]names2=["Chenzhonghua"]names1.extend(names2)#注意:归并两个变量,names2不会被删除。names3=names1.copy()#注意:这里的copy是浅拷贝,只拷贝第一层。names1[1]="张阳"names1[0][1]="Cluo"print(names3)print(names1)#注意:由于是浅拷贝,其实拷贝的是内存地址。
[['Bbabi', 'Cluo'], 'ZhangYang', 'Guyun', 'Xiangpeng', 'Chenzhonghua'][['Bbabi', 'Cluo'], '张阳', 'Guyun', 'Xiangpeng', 'Chenzhonghua']
原创粉丝点击