模块
sys模块:sys模块是用c语言写的,所以在lib下是不会有sys.py这个文件存在
1 import sys 2 print(sys.path) #打印环境变量 3 print(sys.argv) #打印相对路径
os模块
1 # author:"Jason lincoln" 2 import os 3 #cmd_res=os.system("dir") #只执行命令,不保存结果 4 cmd_res = os.popen("dir").read() 5 print("-->",cmd_res) 6 os.mkdir("new_dir") #创建一个目录
Pyc是什么鬼?
当程序执行的时,python内部会先将源代码编译成所谓的字节码的形式,这些字节码可以提高执行速度。python将把程序的字节码保存为一个以.pyc为扩展名的文件(".pyc"就是编译过的“py”源代码)。下一次运行程序时,如果你在上次保存字节码之后没有修改过源代码的话,python将会加载.pyc文件并跳过编译这个步骤。当python必须重新编译时,它会自动检查源文件和字节码文件的时间戳:如果你又保存了源代码,下次程序运行时,字节码将会自动重新创建。
python的数据类型
整型(int):python2分长整型和整型,整型的内存最大为2的32次方字节
浮点型(float):比如小数
布尔值:真或假 1或0
字符串: "helloword"
数据运算
运算符
+ 两个数相加
-
*
% 取模,例如9%4等于1
** 例如 2**3等于8
// 例如9//4等于2
比较运算
== 等于
!= 不等于
<> 不等于
>
<
>=
<=
赋值运算
==
+= c+=a等效于c=c+a
-= c-=a等效于c=c-a
*= c*=a等效于c=c*a
%= c%=a等效于c=c%a
//= c//=a等效于c=c//a
**= c**=a等效于c=c**a
逻辑运算
and 布尔“与” ,x和y同时为真即x and y为真,否则为假
or 布尔“或”,x和y只要有一个为真即 x or y 为真 ,X和y同时为假则x or y为假
not 布尔“非”,x为真则返回为假,x为假则返回为真
成员运算
in 如果在指定序列中找到值返回ture,否则返回Fasle.
in not 如果在指定的序列中没有找到值就返回ture,否则返回false
身份运算
is is是判断两个标识符是不是引用自一个对象
is not is not 是判断两个标识符是不是引用自不同对象
位运算
& 按位与运算 两位同时为“1”,结果才为“1”,否则为0
| 按位或运算 只要有一个为1,其值为1
^ 按位异或 相同为“0”,不同为“1”
x=0101,y=1011x^y==1110
~ 对一个二进制数按位取反,即将0变1,1变0。
<< a = a << 2 将a的二进制位左移2位,右补0。若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。
a=0011 0011 #十进制等于51 a==a<<2 a==1100 1100 #十进制等于204
>> a = a >> 2 将a的二进制位右移2位
将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。
操作数每右移一位,相当于该数除以2。
a=1100 1100 #十进制为204 a==a>>2 a=00110011 #十进制为51
bytes数据类型
三元运算
1 # author:"Jason lincoln" 2 3 a,b,c=1,3,5 4 d=a if a>b else c 5 print(d)
输出“5”
c语言中的类似语法
python3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分,文本总是unicode,由str类型表示,二进制数据则由byte类型表示。
encode和decode的转换
列表的使用
列表
切片
1 #print(names[1:3]) #顾头不顾尾 从第一个开始取到第三个不包括第三个 2 #print(names[3]) 3 print(names[-2:]) #从左往右数 4 ##[‘Xuliangchen‘, ‘xiangpeng‘] 5 print(names[0:3]) 6 ##[‘Zhangyang‘, ‘GuYun‘, ‘Xuliangchen‘] 7 print(names[:3]) 8 ##[‘Zhangyang‘, ‘GuYun‘, ‘Xuliangchen‘] 9 names.append("Leihaidong") 10 print(names) 11 ##[‘Zhangyang‘, ‘GuYun‘, ‘Xuliangchen‘, ‘xiangpeng‘, ‘Leihaidong‘] 12 names.insert(1,"chenronghua") 13 print(names) 14 ##[‘Zhangyang‘, ‘chenronghua‘, ‘GuYun‘, ‘Xuliangchen‘, ‘xiangpeng‘, ‘Leihaidong‘]
delete
1 ames.remove("chenronghua") 2 del names[1] 3 names.pop() #如果不输入默认删除最后一个 4 names.pop(1) #和del names[1]效果一样
列表之改
1 print(names) 2 print(names.index("GuYun")) 3 print(names[names.index("GuYun")])
统计
1 print(names.count("chenronghua"))
清空
names.clear()
反转
names.reverse()
排序
names.sort
合并
names.extend()
删变量
del 变量名
copy
1 names=["Zhangyang","GuYun",["alex","jack"],"xiangpeng","Xuliangchen"] 2 name2=names.copy() 3 print(names) 4 print(name2) 5 names[3]="向鹏" 6 names[2][0]="ALEX" #浅copy,只copy内存地址,同一块内存 7 print(names) 8 print(name2)
深copy
1 # author:"Jason lincoln" 2 import copy 3 names=["Zhangyang","GuYun",["alex","jack"],"xiangpeng","Xuliangchen"] 4 #name2=copy.copy(names) #和浅copy一样 5 name2=copy.deepcopy(names) #深copy 6 print(names) 7 print(name2) 8 names[3]="向鹏" 9 names[2][0]="ALEX" #浅copy,只copy内存地址 10 print(names) 11 print(name2)
浅copy
元组
1 names=(‘jack‘,‘alex‘)2 names.index 3 names.count
购物车程序
需求:
1.启动程序后,让用户输入工资,然后打印商品列表
2.允许用户根据商品编号购买商品
3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
4.可随时退出,退出时,打印已购买商品和余额
字符串操作
字典
多层嵌套