模块:
其实不同的语言不同的叫法这里又可以叫做包,库
Python给我们提供了大量的第三方库支持我们的工作和学习
这里简单提两个sys 和 os 可以运行下看下实验结果:
import sys
print(sys.path)#打印环境变量
print(sys.argv)#
print(sys.argv[2])
import os
#cmd_res = os.system("dir")#执行命令不保存结果
cmd_res = os.popen("dir").read()
print(cmd_res)
os.mkdir("new_dir")
字符串函数用法:
name ="wxh_aaaaaa"
#首字母大写
print(name.capitalize())
#计数'a'
print(name.count("a"))
#把字符串X放在中间不够的用'-'补充
print(name.center(50,"-"))
#判断以什么结尾
print(name.endswith("aa"))
#将tab转换为n个空格
print(name.expandtabs(tabsize=30))
#找查找字符的索引
print(name.find("a"))
#格式化
names ="asd {nam}"
print(names.format(nam='wxh'))
#字典
names1 ="asd {aa}"
print(names1.format_map({'aa':'sdasd'}))
#判断英文字符和数字
print('sd12'.isalnum())
#判断纯英文
print('sada'.isalpha())
#判断数字
print("213".isdigit())
#判断十进制
print("34".isdecimal())
#判断是不是合法变量名
print('das'.isidentifier())
#判断是不是只有数字
print('232'.isnumeric())
#判断是不是标题
print('sd'.istitle())
#p判断是不是全大写
print('AS'.isupper())
print('+'.join(['1','2','3']))
#居左 居右剩下用''中的补够长度50
print(name.ljust(50,'*'))
print(name.rjust(50,'*'))
#去掉左边 右边的空车和回车
#name.lstrip()
#name.rstrip()
#去掉所有空格回车
# name.strip()
#用后面的代替前面的字符
# str.maketrans('1124','asdf')
#.translate()
#替代
print('william wxh'.replace('w','W',2))
#找最右边的
print('william'.rfind('i'))
#按照''分成列表
print('se oe f f'.split(' '))
print('s\nadf\nad'.splitlines())
#大小写互换
print('saDFS'.swapcase())
列表的操作:
这里的高大上的列表其实就是在c语言中常用的数组 用 [] 表示
这里有个元组的概念:(只读的列表)不可被修改 用 () 表示
Python也为它提供了很多可以调用的函数
#切片
names = ["xiaoming","xiaowang","xiaozhang"]
print(names[0],names[2])
#连续取
print(names[0:2])#顾头不顾尾
#步长 切片 names[0:-1:2]
for i in names:
print(i)
#类似数组
# 索引如果为-1则返回最后一个 同理-2为倒数第二个
print(names[-1])
#如果想倒着连续取
print(names[-1:])
#追加
names.append("xiaohou")
names.insert(1,"xiaoli")#插在哪写在哪
#更改
names[2]="xiaoxiao"
print(names)
#删除
#1.使用del删除
del names[0]
print(names)
#2.使用remove
names.remove("xiaoxiao")
print(names)
#3.使用.pop删除(如果使用下标则效果类似del:del names[1]=names.pop(1))
names.pop()
print(names)
#查找
print(names.index("xiaoli"))
print(names[names.index("xiaoli")])
#计数 记重复 names.count("xxx")
#列表清除 names.clear()
#反转逆序 names.reverse()
#排序(规则:ASCII码)names.sort()
#扩展 (把别的列表并过来) names.extend()
#只复制第一层
names2 =names.copy()
#深浅复制copy.copy copy.deepcopy
字典操作
info ={
#key-value
'st1':"aaaa",
'st2':"bbbb",
'st3':"cccc",
}
#字典是无序的
print(info)
print(info['st1'])
#修改 之前有就可以直接修改 没有则增加
info['st4']='dddd'
#删除
#del info['st1']
info.pop('st1')
info.popitem()#随机删除
print(info)
#查找
print(info.get('st1'))
#查在不在
print('st1' in info)
#多级字典的嵌套和数组操作类似
#values
print(info.values())
#keys
print(info.keys())
#如果存在就返回没有就创建
print(info.setdefault('sdt','sooo'))
b ={
'st1':'sdf',
}
#存在的更新 不存在的创建
info.update(b)
print(info)
#字典转成列表
print(info.items())
#初始化一个字典
c =dict.fromkeys([6,7,8],'sd')
print(c)
#字典的循环
for i in info:
print(i,info[i])
#不建议
#for k,v in info.items():
# print(k,v)
知道这些函数 结合之前的知识可以进行做一个购物车的小实例
实例案例
编写一个购物系统
输入工资可以买东西
退出后显示购物清单和余额
salary=input("input your salary:")
product_list =[
('iphone',5800),
('mac pro',12000),
('bike',800),
('watch',10600),
('coffee',31)
]
shoping_list =[]
if salary.isdigit():
salary =int(salary)
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]<=salary:#买得起
shoping_list.append(p_item)
salary -=p_item[1]
print("Added %s into shopping cart ,balance is \033[31;1m%s\033[0m"%(p_item,salary))
else:
print("\033[31;1m买不起。。剩[%s]\033[0m"%(salary))
else:
print('商品不存在!')
elif user_choice =='q':
print('----shopping list------')
for p in shoping_list:
print(p)
print('balance:',salary)
exit()
else:
print('invallid option')
continue
实验结果: