python day-2
老男孩python学习笔记,第二周
一. 模块初识
一般情况下 python 的标准库(不需要安装的库)放到 \\python_path\base\lib\ 目录下面,自已安装的第三方库会放在 \\python_path\base\lib\site-packages\ 目录下面。
注: python 会先在当前路径下查找模块,然后在环境变量中查找。
SYS
import syS
print(sys.argv)
获取到了执行脚本时的参数
获取第二个参数的值
OS
引用系统命令
执行结果
二.pyc是什么?
三.python数据类型
四.bytes数据类型
五.列表的使用
name = []
# 列表
name = ["zhangshan","lisi" ,"wangwu" ,"xiao","zhaoliu" ,"qianqi", "sunba"]
print(name)
#切片
print(name[0],name[3]) #打印列表1,4位
print(name[1:4]) #打印列表2-4位 ,从0开始计,顾头不顾尾
print(name[-1]) #打印列表最后一位
print(name[-3:]) #打印列表倒数三位
print(name[:2]) # 打印列表前两位
# 编辑
name.append("xiao") #在列表后面追加
name.insert(1,"jack") #在列表相应位置插入数据
name[2] = "wangba" #修改列表相应位置的值
#delete
name.remove("zhangshan") #直接指定删除某个值
del name[2] #删除相应位置的值
name.pop(2) # 与del name[2] 功能一样
#查询
print(name)
print(name.index("xiao")) #查询 xiao 在列表中的位置
print(name.count("xiao")) #查询 xiao 在列表中的数量
name.reverse() #反转列表内容
name.sort() #排序 默认按 ASCII 码顺序 特殊字符 数字 大写字母 小写字母
#name.clear() #清空列表
name2 = [1,3,5,7,9]
name.extend(name2) #扩展列表name2 到列表name 中
# del name2 # 删除 name2
print(name,name2)
#copy 复制列表
完全复制,使用 copy 模块
import copy
浅copy 的三种实现方式:
浅copy 的实际用途,可以建立联合帐户
for 循环
间隔输出
六.元组与购物车程序练习
七. 购物车程序练习实例
enumerate 用法
product_list = [
('iphone',5800),
('imac',8800),
('keyboard',800),
('bike',1000),
('books',100)
] #定义商品列表
shopping_list = [] #定义购物车列表 ,起始为空
slary = input('please input your slary:') #输入用户工资
if slary.isdigit(): #判断是否为数字
slary = int(slary) #转成整形
while True: #循环选择商品
for index,item in enumerate(product_list):
#print(product_list.index(item),item)
print(index,item) #打印商品信息,包括编号
user_choice = input("请选购你的商品:") #用户进行选择
if user_choice.isdigit(): # 判断用户输入是否为数字
user_choice = int(user_choice) #转为整型
if user_choice < len(product_list) and user_choice >= 0: #判断用户选择有没有超过商品列表范围
p_item = product_list[user_choice] #定义商品价格变量
if p_item[1] <= slary : #判断价格是否小于工资数
shopping_list.append(p_item) #将商品添加进购物车
slary -=p_item[1] #扣除商品价格
print("add %s to your shopping cart,you current balance is \033[31;1m%s\033[;0m"%(p_item[0],slary)) #打印采购信息
else:
print('you current balance is %s ,not enough!'% slary) #余额不足时提示
else:
print("product code %s is not exsit!"% user_choice) #输入编号超过列表范围时提示
elif user_choice == 'q': # 输入 q 退出,并打印采购信息
print('-------shopping list--------')
for p in shopping_list:
print(p)
print('your cuurent balance is :',slary)
exit()
else:
print('invalid option!')
else:
print("error input!")
八.字符串常用操作
name = 'john joe jack'
print(name.capitalize()) #第一个字母大写
print(name.count('j')) #统计字母j 的数量
print(name.center(50,'-')) #打印50个字符 其中name 居中打印,不足的用- 补全
print(name.endswith('ck')) #判断是否以ck 结束
print(name.expandtabs(tabsize=20))
print(name.find('jack')) #打印字符所在开始位置
print(name[name.find('joe'):-1]) #切片
name = 'my name is {name} and i am {year} old'
print(name.format(name='john',year=18)) #格式化输出
print(name.format_map({'name':'john','year':'18'})) #格式化输出
print("adc123".isalnum()) #判断是否是阿拉伯文字
print("acbABC".isalpha()) # 纯英文字符
print("1A".isdecimal()) #十进制数字
print("1A".isdigit()) #整型数字
print('adf adf'.isidentifier()) #判断是不是合法的标识符
print('123'.isnumeric()) #判断是不是纯数字
print(' '.isspace()) #是不是空格
print('My Name Is John'.istitle()) #是不是标题 首字纯大写
print('aaa'.isprintable()) #能不能打印 tty driver
print('aaa'.islower()) # 小写
print('AAA'.isupper()) # 大写
print(','.join(['1','2','3'])) # 将列表拼接成一个字符串
print(name.ljust(50,'*')) #左边补全 50 字符
print(name.rjust(50,'#')) #右边补全 50 字符
print('JoHn'.lower()) #全转成小写
print('john'.upper()) #全转成大写
print('\nJohn\n'.lstrip()) #清除左边的空格
print('\nJohn\n'.rstrip()) #清除右边的空格
print('\nJohn\n'.strip()) #清除两边的空格
print('......')
p = str.maketrans('adcbd','12345')
print('John is a boy'.translate(p)) #将字母转成 对应列表的数字
print('johnny'.replace('n','N',1)) #替换
print('johnny go home'.rfind('o')) #找到最右边字母的下标
print('johnny go home'.split()) #分隔成列表,默认以空格为分隔符
print('johnny go home'.split('o')) #以o为分隔符分隔成列表,
print('johnny \n go home'.splitlines()) #按换行符分隔成列表,
print('JohNny Go Home'.swapcase()) #反转大小写
print('johnny go home'.title()) #转成title
九.字典的使用
十.三级菜单实例
使用字典
![](https://images2015.cnblogs.com/blog/1105028/201702/1105028-20170217232718847-977572983.png)
![](https://images2015.cnblogs.com/blog/1105028/201702/1105028-20170217230727332-1352372656.png)