Day_2_Python_str_list_dict的使用
2024-05-10 11:13:56
模块的命名
1 假设命名的是sys.py 在sys.py中引入sys 这样是有问题的,不建议引入库与文件重名 2 base/lib/site-packages #第三方库会放在这里 3 base/lib #一般存放的是标准库
sys模块
case_1
import sys print (sys.path) #在pycharm中会显示绝对路径,在cmd中调用的话会使用相对路径
case_2
import sys print (sys.argv[2]) #可以打印传入参数的第3个值
os模块
case_1
import os os.system("dir")
case_2
import os cmd_res = os.system("dir") #执行命令不保存命令 cmd_res = os.popen("dir").read #先存到内存,再通过read读取 cmd_res = os.mkdir("new_dir") print (cmd_res) #返回 0 代表执行成功 #返回 1 代表执行失败
system和popen的区别
os.system #调用系统命令,完成后退出,返回结果是命令执行状态,一般是0 os.popen #可以实现一个“管道”,从这个命令获取的值可以在python 中继续被使用
两者的区别是:
os.system(cmd)#的返回值只会有0(成功),1,2 os.popen(cmd) #会吧执行的cmd的输出作为值返回。
Python中的Pyc文件的由来
在执行python的时候会先去找有没有pyc文件 python在执行过程中第一步也是先编译,编译成一个pyc
布尔值
真 或 假 1 或 0 True 或 False
运算法则
python3会精确计算例如 / 除法 10/3 = 10.3333335 % 取模 10%3 = 1 ** 取幂 10**2 = 100
位运算
三元运算
python3中有个新类型叫 bytes
list
names = ["a","b","c","d"] print(names) print (names[0],names[2]) #取 下标 print (names[1:3]) #顾 头不顾尾 print (names[-1]) #取 -1 print (names[-2::]) print (name[0:3]) #前边的0可以省略
向后追加
names = ["a","b","c","d","e","f"] names.append("e")
向指定位置插入 1是下标,插入后 1的位置就是e
names = ["a","b","c","d","e","f"] names.insert(1,"e")
修改list
names = ["a","b","c","d","e","f"] names[2] = "gai" #直接对下标元素进行赋值
删除一
names = ["a","b","c","d","e","f"] names.remove["a"] #移除指定元素
删除二
names = ["a","b","c","d","e","f"] del names[0] #删除最后一个,加下标可以删除指定下标的 names = ["a","b","c","d","e","f"] names.pop()#查询下标位置,但只能查询到第一次匹配的位置 names = ["a","b","c","d","e","f"] names.index("a")
清除
names.clear() #清除names这个list的内容
反转
names = ["a","b","c","d","e","f"] names.reverse() print (name) #print(names.reverse))则不会有输出
合并list
names1 = ["1","2"] names = ["a","b","c","d","e","f"] names.extend(names1) #将 两个list进行合并
copy浅拷贝
names1 = ["a","b","c",[1,2]] names2 = names1.copy() names1[-1][0] = 8 names1[0] = 8print(names1,names2) [8, 'b', 'c', [8, 2]] ['a', 'b', 'c', [8, 2]]
copy深拷贝
#两份独立的内存空间,各自修改不影响 import copy names1 = ["a","b",[1,2],"d"] names2 = copy.deepcopy(names1) names1[0] = 8 names1[2][0] = 8 print (names1,names2)
举例
person = ["name",["saving",100]] p1 = person[:] p2 = person[:]p1[0] = "alex" p2[0] = "fengjie"p1[1][1] = 50print (p1,p2)
tuple
tuple只有两个属性 1、count 2、index
小练习
#判断是否是数字 if salary_input.isdigit():salary = int(salary) #小练习中的亮点: #一、判断是否为数字 .isdigit()函数 #二、减价钱 input_usermoney -= 100 #三、彩色字体显示 #四、enumerate取下标和内容 # for index,item in enumerate(shop): # print ("index %s,item %s: "%(index,item)) cart_list = [] shop = [["phone",4999],["mac air",6000],["coffe",30]] user_money = int(input("输入你的现金 : ")) while True:print ("可购买的商品列表 \n0 :{}\n1 :{}\n2 :{}\nq 退出 :".format(shop[0],shop[1],shop[2]))salary_input = input("Plz your want buy index : ")if salary_input.isdigit():salary_input =int(salary_input)if salary_input <= len(shop):if user_money >= shop[salary_input][1]:user_money -= shop[salary_input][1]cart_list.append(shop[salary_input][0])print ("已购买一台 {},花了{}大洋:".format(shop[salary_input][0],shop[int(salary_input)][1]))print ("剩余{}钱\n".format(user_money))elif user_money < shop[salary_input][1]:print ("你没这么多钱\n")else:print("没有这个商品\n")else:if salary_input == "q":cart_list = list(set(cart_list))print ("你买了\033[41;m{},还有{}钱,退出..".format(cart_list,user_money))exit()
字符
name = "zouyi" name.capitalize() #首字母大写 name.count("a") #判断a的数量 name.center(50,-) ` #name放中间,其余用-补齐一共50个字符 name.endswith("yi") #判断是否以ex结尾 name.expandtabs(tabsize=30) #将tab转换成30个空格 name[name.find(yi):] #字符串可以用来切片 name.format(name="alex",year=23) #格式化输出 name.format_map({"name":"zouyi","year":12}) #格式化输出 name.isalpha() #判断是不是纯英文字符 name.isnumeric() #判断是不是只有only数字 name.istitle() #判断是否 每个单词是大写瘦子母 ("+".join(["1","2","3","4"])) ===>1+2+3+4 name.lstrip() #去掉左边的空格 name.rstrip() #去掉右边的空格 p = str.maketrans("abcdef","123456") #将abcdef转换成123456在translate中使用 print ("zouyi",translate(p)) print ("zouyi",replace("z",Z,1)) #替换大小写,可以选择全部替换或者替换部分 print ("zouyi".rfind("e")) print ("1+2+3+4",split("+"))
字典
#字典是无序的,因为字典没有下标,因为字典有key info = { "stu1101" : "a" "stu1102" : "b" "stu1103" : "c" } print (info)#字典修改value info["stu1101"] = "武藤兰"#字典添加 info["stu1104"] = "d"
字典删除
1、del info["stu1101"] #del是个通用方法 2、info.pop("stu1101") 3、info.popitem() #随机删除一个
字典查找(推荐方案)
print(info.get("stuNone")) #即便没有也不会报错#字典确认可以是否存在 print("stu1103" in info)
字典默认值
setdefault #创建(但是若存在这个key则不创建) info.setdefault("stu1104",{"www.baidu.com":"1234"})#更新合并updata b = { "m1":1 "stu1101":"zzzzz" } info.update(b) #将b合并更新到info这个字典 初始化一个新的字典,若修改一个values则会都变,相当于浅copy字典的循环,推荐用第一种,第二种会耗费性能 for i in info:print(i,info[i])for k,v in info.items():print(k,v)
转载于:https://www.cnblogs.com/zoee/p/5733568.html
Day_2_Python_str_list_dict的使用相关推荐
最新文章
- 用户月活跃度在哪里可以查_2020年12月计算机等级考试报名时间,另外11月6号可以查9月考试成绩...
- VFS文件系统结构分析 与socket
- 定位服务器数据丢弃包问题
- 【深度学习】目标检测实战:4种YOLO目标检测的C++和Python两种版本实现
- pandas之shift()函数
- (11)FPGA复位设计原则
- 上有天最高,自然较为小
- Android 分享两个你学习android 平台开发必须碰到的几个知识点的组件【天气预报、日期】View 组件...
- 数组中大于等于左侧所有数,小于等于右侧所有数的数
- Activiti6教程一
- Kafka-常见问题
- [Win10] 代理服务器出现问题或地址有误
- python youtube 自动评论_用python做youtube自动化下载器 思路
- win10上安装两个ubuntu16.04系统分别安装在SSD和HHD
- 微信公号 DIY:一小时搭建微信聊天机器人
- java new url()_Java(4)URL - SegmentFault 思否
- 关于vs qt 64位程序 编译文件0xc000007b错误的解决方案
- ico图标完整代码+列表+评论框
- 诊断服务之0x10(DiagnosticSessionControl)
- 近几年我在职场踩过的坑