Python学习第12天
程序员文章站
2022-05-10 11:02:43
...
Python学习第11天
这11天的学习对于我这个编程初学者、上班族、跨行入坑的人来说进度很慢,但丝毫没有影响我对编程的兴趣。
以下是我这十天的学习内容:
- 学习调用Python中的模块
os模块
import os
#跟操作系统交互,在系统查看当前文件目录,查看文件大小
cmd_res=os.system("dir") #执行命令,输出出结果,不保存结果
cmd_res=os.popen("dir").read() #不加read打印结果的临时地址,加read读出结果内容
print("----",cmd_res)
os.mkdir("new_dir") #在当前目录下创建文件夹
copy模块,在学习列表后的copy的简单应用
import copy #copy模块是浅复制
person=["name",["saving",100]]
p1=copy.copy(person)
p2=person[:]
p3=list(person)
p1=person[:]
p2=person[:]
p1[0]="white"
p2[0]="ying"
p1[1][1]=50
print(p1)
print(p2)
#联合账号的浅copy应用
- 将自己写的模块放入Python模块库下,并调用。
- Python的数据运算,这个节视频找不到了,自己到网上搜了一下看了看。
- Python的列表和元组,简单来说呢,Python的列表是可以更改内容的,但元组不可以,元组就是只读列表。
列表:
names=["4baiminglei",["gongming","yuanyanjie"],"huxin","lixiaojian","#!liuzhidong","wangguoqiang","wangbowen"]
#列表lists
print(names[0:-1:2]) #列表的切片
print(names[::2])
print(names[0:-1])
print(names[:])
print(names[-1])
for i in names: #列表循环
print(i)
names2=copy.deepcopy(names) #copy浅复制,复制的是第一层的存储地址
print(names2)
print(names)
names[2]="胡" #更改列表第一层字符的时候,copy可以复制下来
print(names)
print(names2)
names[1][0]="Gongming" #更改列表中第二层字符的时候,copy失效
print(names)
print(names2)
print(names[0],names[2]) #切片取数据
print(names[1:3]) #冒号前面的数表示从这个下标开始,冒号后面的数是表示这个下标之前
print(names[-2:]) #冒号后面没数是表示到列表最后
print(names[:3]) #冒号前面没数是表示从列表最头开始
names.append("Wangguoqiang") #append在最后追加
print(names)
names.insert(1,"yuxuehui") #insert任意位置插入
print(names)
names[2]="wangbowen" #替换列表中的字符串
print(names)
names.remove("yuxuehui") #根据字符串内容,删除列表中的字符串
print(names)
del names[1] #根据字符串位置,删除列表中字符串
print(names)
names.pop(1) #.pop()括号内有位置是删除位置的字符串,括号内无位置时删除列表最后一位字符串
print(names)
print(names.index("#!liuzhidong")) #indxe索引,查找列表中字符串的位置,并打印位置
print(names[names.index("#!liuzhidong")]) #打印该字符串
print(names.count("4baiminglei")) #.count()统计括号内字符串在列表中的个数
#names.clear() #clesr清空列表
names.reverse() #reverse反转列表
print(names)
names2=['1','2','3']
names.extend(names2) #extend扩展
#del names2 #删除变量
print(names,names2)
a_1=['1','2','3']
a_2=['4','5','6']
print(a_1+a_2) #列表的运算相加
a_2.append("7") #列表添加元素
print(a_2)
b_1=len(a_2) #len列表长度查看
print(b_1)
name="我爱北京*"
print(name)
print(name.encode(encoding="utf-8")) #字符串转换
print(name.encode(encoding="utf-8").decode(encoding="utf-8")) #字符串转换
- 字符串的操作
name="\tmy name is {name} and i am {age} years old"
print(name.capitalize()) #capitalize首字母大写
print(name.count("e")) #count计数
print(name.center(50,"-")) #center中心,共打印50个字符,不够用"-"代替,把name字符串放中间
print(name.endswith("te")) #endwith判断字符串以什么结尾的
print(name.expandtabs(tabsize=30)) #添加空格符
print(name.find("is")) #查找字符串索引
print(name[name.find("name"):]) #给字符串切片
print(name.format(name="white",age="27")) #format格式化
print(name.format_map({"name":"white","age":"27"})) #format_map用法,主要用于字典
print(name.index("and")) #查找字符串索引,功能类似find
print("ad12".isalnum()) #判断字符串是否为阿拉伯字符
print("ad".isalpha()) #判断字符串是否为纯英文
print("1000".isdecimal())
print("112".isdigit()) #判断字符串是否为整数
print("1A".isidentifier()) #判断是否为合法的变量名
print("1A".islower()) #判断是否为小写
print("1A".isnumeric()) #判断?
print(" ".isspace()) #判断是不是空格
print("A12".istitle()) #判断是否为首字母大写
print("1122".isprintable()) #判断是不是打印的,tty file or drive file 是不能打印的
print("1122".isupper()) #判断是否为大写
print("+".join(["1","2","3"]))
print(name.ljust(50,"*")) #在左边用*号补齐50个字符
print(name.rjust(50,"-")) #在右边用-号补齐50个字符
print(name.lower()) #小写
print(name.upper()) #大写
print(name.lstrip()) #左边去空格和回车
print(name .rsplit()) #右边去空格和回车
print(name.strip()) #去全部的空格和回车
p=str.maketrans("qwerty","123456") #把括号左边的字符,用右边的字符一一对应的代替
print("white".translate(p)) #把代替后的内容传到字符串
#print("white".partition()) #不知道
print("white".replace("w","W",1)) #把左边用右边的代替,几个
print("white".rfind("i")) #找到最右边的字符,打印下标
print("w h i te".split("e")) #用字符串中任意字符当做分隔符,把字符串分割成列表
print("wh\nite".splitlines()) #用换行分割字符串
print("White".swapcase()) #大小写反向
print("white".title()) #首字母大写
print("white".zfill(50)) #用0填充字符串
- 购物车程序
#Author Mr_White
product_list=[
("iphoneX",10000),
("HUAWEImate20pro",12000),
("XIAOMI9",3000),
("VIVOx20",5000),
("OPPO20",4500)
]
shopping_list=[]
salary=input("Input your salary:")
if salary.isdigit(): #isdigit 判断salary是否为整数
salary=int(salary) #将salary转换为整数
while True:
for index,item in enumerate(product_list): #enumerate列举列表下标
#for item in product_list:
print(index,item)
#print(product_list.index(item),item) #.index()打印列表下标
user_choice=input("请选择购买的商品>>>:")
if user_choice.isdigit(): #isdigit 判断user_choice是否为整数
user_choice=int(user_choice) #将user_choice转换为整数
if user_choice < len(product_list) and user_choice >= 0 : #len()查看列表长度返回一个数字
p_item=product_list[user_choice] #找到已选择商品
if p_item[1] <= salary: #把已选择的商品价格与用户工资做比较
shopping_list.append(p_item) #把已选择的商品放入购物车列表
salary-=p_item[1] #把已选择商品的价格从余额中扣除
print("Added %s into shopping cart,your current balance is \033[32;1m%s\033[0m"%(p_item,salary))
else:
print("\033[31;1mYour current balance %s ,cannot afford\033[0m"%(salary))
else:
print("product code [%s] is not exist"%user_choice)
elif user_choice=="q":
print("-----shopping_list-----")
for p in shopping_list:
print(p)
print("You current balance: \033[32;1m%s\033[0m"%salary)
exit()
else:
print("invalid option")
- 字典程序
#Author Mr_White
info={
'stu0001':"white",
'stu0002':"huxin",
'stu0003':"lixiaojian",
'stu0004':"wangbowen",
'stu0005':"wangguoqiang"
}
print(info)
#字典的合并和覆盖
'''
b_info={
"stu0001":"white2",
1:2,
3:4
}
info.update(b_info)
print(info)
'''
#将字典的索引和内容变成列表
'''
print(info.items())
'''
#更改增加
'''
print(info)
print(info['stu0003'])
info['stu0004']="王博文"
print(info)
info['stu0006']="zangshuhao"
print(info)
#del
#删除'''
'''del info['stu0006']
print(info)
#pop
info.pop('stu0002')
print(info)
info.popitem()'''
#查找
'''print(info)
print(info.get('stu0007'))
print('stu0003' in info )'''
#多级字典嵌套
'''
learn_catalog={
"software_programming":{
"python":[
"creeper",
"database",
"artificial_intelligence"
],
"java":[
"creeper",
"database",
"artificial_intelligence"
],
"C#":[
"creeper",
"database",
"artificial_intelligence"
],
"C++":[
"creeper",
"database",
"artificial_intelligence"
],
"C":[
"creeper",
"database",
"artificial_intelligence"
],
"GO":[
"creeper",
"database",
"artificial_intelligence"
]
},
"project_programming":{
"PLC":[
"programme",
"simulation"
]
},
"read":{
"economics":[
"nicai",
"hehe"
],
"finance":[
"你猜",
"不想说"
]
}
}
learn_catalog["read"]["finance"][1]="3"
learn_catalog.setdefault("watch",{"TV":["1","2"]})
print(learn_catalog)
'''
#新建空字典,只能新建一层字典
'''
c_info=dict.fromkeys([6,7,8],[1,{"name":"white"},444])
c_info[7][1]["name"]="baiminglei"
print(c_info)
'''
#字典循环两种方法
#字典循环第一种方法是找到字典索引循环
'''
for i in info:
print(i,info[i])
'''
#字典循环第二种方法是先把字典转成列表,非常低效
'''
for k,v in info.items():
print(k,v)
'''
- 三级菜单
#Author Mr_White
city={
"山东":{
"济南":{
"历城区":["烤鱼","大虾","牛排"],
"历下区":["肉夹馍","饺子","小笼包"],
"槐荫区":["七天","如家","汉庭"]
},
"威海":{
"文登区":["沙河","三里桥","东街"],
"荣成市":["步行街","小吃街","王府井"],
"乳山市":["海参区","鲍鱼区","大虾区"]
},
"烟台":{
"蓬莱市":["小面","油条","油炸糕"],
"莱山区":["烟职","工商","商务"],
"芝罘区":["火车站","汽车总站","青年路汽车站"]
}
},
"河北":{
"石家庄":{
"长安区":["南街","北街","西街"],
"桥东区":["东门","西门","北门"],
"桥西区":["东床","西床","北床"]
},
"承德":{
"避暑":["东墙","西墙","南墙"],
"山庄":["东山","西山","北山"],
"大桥":["东河","西河","北河"]
},
"雄安新区":{
"P城":["防区","街道","塔楼"],
"Y城":["一楼","二楼","三楼"],
"机场":["C楼","跑道","大厅"]
}
}
}
exit_f=True
while exit_f:
for i in city:
print(i)
choice=input("_city1:")
if choice in city:
while exit_f:
for i2 in city[choice]:
print("\t",i2)
choice2=input("_city2;")
if choice2 in city[choice]:
while exit_f:
for i3 in city[choice][choice2]:
print("\t\t",i3)
choice3=input("_city3:")
if choice3 in city[choice][choice2]:
for i4 in city[choice][choice2][choice3]:
print("\t\t",i4)
choice4=input("按b返回:")
if choice4=="b":
pass
elif choice4=="q":
exit_f=False
if choice3=="b":
break
elif choice3 == "q":
exit_f = False
else:
print("into error")
if choice2=="b":
break
elif choice2 == "q":
exit_f = False
else:
print("into error")
elif choice=="b":
break
elif choice == "q":
exit_f = False
else:
print("into error")
- 简单的用户登录程序
# Author:White bai
username="white"
password="123456"
count=0
for i in range(3):
_username=input("_username:")
_password=input("_password:")
if _username==username and _password==password:
print("welcome to the world of dream")
break
else:
print("user or password error")
count+=1
if count==3:
print("The account")
基本上这12天学的东西全在这了,进度有太慢了,只能加油了,明天中午休息也要来办公室学习了。
上一篇: 暑假学习部分总结