一,模块初识
库
.标准库,不需要安装使用pytion最基础的内容
.第三方库 必须下载安装
.自己写模块或者文件名字不能和需要导入的库名相同
import sys #sys 模块
sys.path
print(sys.path) #打印环境变量 提示sys.xxx
print(sys.argv) #打印绝对路径 :相对路径
print(sys.argv[2])
import os #用于和操作系统进行交互模块的os模块
os.system("dir") #dir查看当前路径
cmd_res=os.system("dir")#执行命令不保结果
cmd_res=os.popen("dir").read #read 把结果存到内存里的一个临时的地方
print("-->",cmd_res)
os.mkdir("new_dir") mkdir 创建目录用的
模块调用 自己写一个输入用户密码的py 然后在新的py里inport 这个模块即可使用
二,数据类型
数字
int(整形)
long(长整形)
.整数
.浮点数
float(浮点数)2.32和52.3e-4
complex(复数)(-5+4j)(2.3-4.6j)
布尔值
.真或假.1或0
.真Tune 假false
.字符串
."hello world"
.数据运算
计算机中表示的最小单位,是一个二进制位
计算机中存储的最小单位,是一个二进制位
8bit= byte(字节)
1024byte= 1kbyte
1024kbyte=1mbyte
1024mbyte=1gbyte
1024gbyte=1tbyte
三元运算
result=值1 if条件 else值2
如果条件为真:result=值1
如果条件为假:result=值2
a.b.c=1.3.5
d=a if a>b else c
d=5
d=a if a<b else c
d=1
.二进制,01
.八进制,01234567
.十进制,0123456789
.十六进制0123456789ABCDEF
H代表十六进制 如bh=11
0x也是
encode
decode 二进制转字符块
msg=("我爱爱北京天安门")
print(msg.encode(encoding="utf-8")) #转二进制
print(msg.encode(encoding="utf-8").decode(encoding="utf-8")) #转回
把一个字符块用encode转成二进制byte 再将用decode转回字符块.
三,列表 元祖的使用
列表,元组操作
names=["Alex","enle","good","hello","yello","school"] #列表
names2=("sui lin", "lin xin","zhi qiang")#元组 =只读列表 不具有修改,增加,删除等特性
#print(names[0])#Alex
#print(names[3])#hello
#print(names[1:3])#[‘enle‘, ‘doog‘]切片<取两个数中间的值>
#print(names[-2])#yellow
#print(names[-3:-1])#[‘hello‘, ‘yello‘]切片
#print(names[:3])#[‘Alex‘, ‘enle‘, ‘good‘]前边或者后边不写即取最后<前>一个值
#names.reverse() #<将列表反着打印>
#names.sort() #按ASCll码排序
#names.append("glood")#增加用户在最后
#names.insert(1,"glood")#再指定位置增加用户,原来用户往后移动一位
#names[2]="king" #替换用户
#names.remove("good")#删除一个用户
#del names [2] #删除用户第二种方法
#names.pop(2)#pop删除最后一个输入位置则执行位置
#print(names.index("good")) 查到用户的位置
#print(names[names.index("good")])#查找并打印用户的账户
#print(names.count("good"))#统计用户姓名数量
#names.clear()#清空用户数据
#del names2[:]#删除names2的用户数
#names.extend(names2)#增加一个分组
print(names)
names.copy() 相当于复制一个列表
复制一份names2 等于name
把names里边的用户改一个成中文
names列表里再包含一个列表
只浅copy第一层 不copy修改的地方
调用copy模块 使name2=copy.copy(names)
使name2=copy.deepcopy(names) #深copy
print(names[0:-1:2])#跳着打印
print(names[::2]) #跳着打印
做列表的for循环
for i in names:
print(i)
代码
names=["Alex","enle","good",["tich","alppe"],"hello","yello","school"]
names2=["sui lin", "lin xin","zhi qiang"]
names3 = copy.deepcopy(names)#深copy
names4= copy.copy(names)#浅copy的三种实现方式
names5= names[:] #切片实现浅copy
naes6= list(names)
#print(names[0:-1:2])
#print(names[::2])
names[2]="非常好"
names [3][1] = "flac"
print(names3)
print(names)
print(names3)
for i in names:
print(i)
四,购物车程序代码
#print(products_list.index(item),item)# index 索引 item 逐条列出
#break
#enumerate ()#把列表的下标排序直接找出来
#print(salary)
五, 字符串的常用操作
print(name.capitalize())#首字母大写
print(name.count("e")) #统计字母数量
print(name.center(50,"-")) #标题50个-号
print(name.encode())#把字符串转成二进制
print(name.endswith("le"))#判断尾数是否以""结尾
print(name.expandtabs(tabsize=50)) #把\t转为空格
print(name[name.find("l"):])# 位置及切片
print(name.format(name="enle",age="22"))#改变{}里的变量
‘‘‘
print(name.isdigit()) #判断name是否为数字
print(‘asdf123‘.isalnum())#判断这是不是一个阿拉伯数字
print(‘abA‘.isalpha())#纯英文字符
print(‘1‘.isdecimal())#忘记他
print(‘1‘.isdigit())#判断是否为一个整数
print(‘a1A‘.isidentifier())#判断是不是一个合法的标识符
print(‘a1a‘.islower())#‘判断是不是小写‘
print(‘33‘.isnumeric())#忘记他
print(‘ ‘.isspace())#判断是不是空格
print(‘My Name Is‘.istitle()) #判断是不是大写开头
print(‘My Name Is‘.istitle())#tty file drive file
print(‘M‘.isupper())#判断是否全是大写
print(‘+‘.join([‘1‘,‘2‘,‘3‘,‘4‘])) #转成字符串
print(name.ljust(50,‘*‘))#表示长50 不够用*号补上
print(name.rjust(50,‘*‘))#表示长50 不够用*号补上
print(‘Enle‘.lower())#把大写变成小写
print(‘Enle‘.upper())#把小写变成大写
print(‘\nEnle‘.lstrip())#去除左边\n换行空格
print(‘Enle\n‘.rstrip())#去除右边\n换行空格
print(‘\nEnle\n‘.strip())#去除左右边\n换行空格
p= str.maketrans("abcdefli",‘123$%456‘)
print("alex li".translate(p)) # 古代的文本加密模式
print("alex li".replace(‘l‘,‘L‘,1))
print("alex lie".rfind(‘e‘))#找到最后面值的下标
print("alex li".split(‘l‘))#按照空格来分成列表或者符号
print("1+2\n+3+4".splitlines())#自动识别不同系统换行
print("alEx li".swapcase()) #大小写互相转换
print("alex li ee".title())#把首字母换成
print("alex li".zfill(50))#不够的用0填充
六,字典的使用
#字典没有下标只有key
info = {
‘stu1101‘: "TengLan Wu",
‘stu1102‘: "LongZe Luola",
‘stu1103‘: "XiaoZe Maliya",
} #字典
for i in info:
print(i,info[i]) #最简单的循环打印出字典所有东西 只有i只答应key值
for k,v in info.items():
print(k,v)
#区别是上面这种比下面哪种高效很多,第一种直接通过key取出数据
‘‘‘
b={
‘stu1101‘:"alex",
1:3,
2:5,
}第二个字典
info.update(b)#有就修改没有及添加合并字典
#print(info)
c=dict.fromkeys([6,7,8],[1,{"name":"alex"},555])#初始化一个新的字典 为key附一个临时的值
print(c)
c[7][1][‘name‘] = "jace chen"
print(c)
#print(info.items()) #把字典转为列表
print(info)
print(info.get("stu1102")) #安全找出stu1102的值
print(‘stu1104‘ in info)# 判断是否有stu1104这个值.ifo.has_key pytion3里没有了
#print(info["stu1103"])
info["stu1101"]="武藤兰"#修改
info["stu1104"]=" cangjingkong"#添加
#info["stu1102"]="武藤兰"#修改
#del info["stu1104"]#删除第一种方法
#info.pop("stu1101")#删除第二种
#info.popitem()#随机删除
av_catalog.setdefault("大陆",{"网址":[1,2]})
print(av_catalog)
#av_catalog.setdefault() 如果能找到字典里的值就用字典里的找不到就添加
#print(info)
七,三级菜单程序
以下为代码
实现每一级都能退出 每一级都能返回上级菜单
八,作业
购物车的优化
用户入口
1.商品信息存在文件里
2.已购商品,余额记录.
商家入口
2.可以添加商品,修改商品价格