首页 > 代码库 > alex python of day2

alex python of day2

 

模块

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=1011
x^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语言中的类似语法

技术分享View Code

python3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分,文本总是unicode,由str类型表示,二进制数据则由byte类型表示。 

技术分享

 encode和decode的转换

技术分享

列表的使用

 列表

 

技术分享View Code

 

切片

 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

技术分享View Code

技术分享

元组

1 names=(‘jack‘,‘alex‘)2 names.index
3 names.count

购物车程序

需求:

1.启动程序后,让用户输入工资,然后打印商品列表

2.允许用户根据商品编号购买商品

3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒

4.可随时退出,退出时,打印已购买商品和余额

 

技术分享View Code

字符串操作

技术分享View Code

 字典

 

技术分享View Code

 

多层嵌套

技术分享View Code

技术分享

 

alex python of day2