Python之路,Day2 - 字典

一、Python 环境变量

1、 import 模块加载路径

[‘C:\\Users\\123\\PycharmProjects\\untitled\\day2‘, ‘

C:\\Users\\123\\PycharmProjects\\untitled‘, ‘

C:\\Users\\123\\AppData\\Local\\Programs\\Python\\Python35\\python35.zip‘,

‘C:\\Users\\123\\AppData\\Local\\Programs\\Python\\Python35\\DLLs‘,

‘C:\\Users\\123\\AppData\\Local\\Programs\\Python\\Python35\\lib‘ #Python 标准库路径,

‘C:\\Users\\123\\AppData\\Local\\Programs\\Python\\Python35‘,

‘C:\\Users\\123\\AppData\\Local\\Programs\\Python\\Python35\\lib\\site-packages‘  #Python 第三方库路径]

2、sys模块

  • print (sys.argv) 脚本相对路径

3、OS模块

  
  • os.system("dir") 调用系统命令,执行命令,不保存结果,无法作为变量
  • cmd_res = os.popen("dir").read();print(cmd_res) 将命令执行结果作为变量
  • os.mkdir("test1") 创建目录

二、.pyc是个什么鬼?

1. Python是一门解释型语言?

我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在。如果是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写才对啊!

为了防止其他学习Python的人也被这句话误解,那么我们就在文中来澄清下这个问题,并且把一些基础概念给理清。

 

2. 解释型语言和编译型语言

计算机是不能够识别高级语言的,所以当我们运行一个高级语言程序的时候,就需要一个“翻译机”来从事把高级语言转变成计算机能读懂的机器语言的过程。这个过程分成两类,第一种是编译,第二种是解释。

编译型语言在程序执行之前,先会通过编译器对程序执行一个编译的过程,把程序转变成机器语言。运行时就不需要翻译,而直接执行就可以了。最典型的例子就是C语言。

解释型语言就没有这个编译的过程,而是在程序运行的时候,通过解释器对程序逐行作出解释,然后直接运行,最典型的例子是Ruby。

通过以上的例子,我们可以来总结一下解释型语言和编译型语言的优缺点,因为编译型语言在程序运行之前就已经对程序做出了“翻译”,所以在运行时就少掉了“翻译”的过程,所以效率比较高。但是我们也不能一概而论,一些解释型语言也可以通过解释器的优化来在对程序做出翻译时对整个程序做出优化,从而在效率上超过编译型语言。

此外,随着Java等基于虚拟机的语言的兴起,我们又不能把语言纯粹地分成解释型和编译型这两种。

用Java来举例,Java首先是通过编译器编译成字节码文件,然后在运行时通过解释器给解释成机器文件。所以我们说Java是一种先编译后解释的语言。

3. Python到底是什么

其实Python和Java/C#一样,也是一门基于虚拟机的语言,我们先来从表面上简单地了解一下Python程序的运行过程吧。

当我们在命令行中输入python hello.py时,其实是激活了Python的“解释器”,告诉“解释器”:你要开始工作了。可是在“解释”之前,其实执行的第一项工作和Java一样,是编译。

熟悉Java的同学可以想一下我们在命令行中如何执行一个Java的程序:

javac hello.java

java hello

只是我们在用Eclipse之类的IDE时,将这两部给融合成了一部而已。其实Python也一样,当我们执行python hello.py时,他也一样执行了这么一个过程,所以我们应该这样来描述Python,Python是一门先编译后解释的语言。

4. 简述Python的运行过程

在说这个问题之前,我们先来说两个概念,PyCodeObject和pyc文件。

我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。

当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。

当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。

所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。

列表

names = ["zhangyang","guyun","xiangpeng","xuliangchen"]
print(names[0:3])  #切片,[0-3]顾头不顾尾print(names[-3:-1])
names.append("test1")   #添加,默认最后names.insert(1,"test")  #插入,
names[1] = "lb" #改
names.remove("zhangyang") del names[1] #删除下标 1names.pop()  #默认删除最后一个,可指定下标names.clear() #情况names列表
print(names.index("guyun")) #查找列表里guyun的下标
print(names.count("guyun")) #统计列表里有几个guyun
names.reverse() #发转列表排序names.sort() #特殊符号、数字、大些、小写 排序
names.extend(names2) #合并列表

name2=names.copy(names)name2=names.deepcopy(names)#copy默认为浅copy,只copy第一层,例如子列表和copy之后的子列表共指向同一个内存地址。
deepcopy完全copy列表,深copy
 
时间: 2024-08-02 02:46:09

Python之路,Day2 - 字典的相关文章

Python之路 day2 字典练习题之 三级菜单

1 #Author:ersa 2 ''' 3 程序: 三级菜单 4 要求: 5 打印省.市.县三级菜单 6 可返回上一级 7 可随时退出程序 8 ''' 9 menu = { 10 '北京':{ 11 '海淀':{ 12 '五道口':{ 13 'soho':{}, 14 '网易':{}, 15 'google':{} 16 }, 17 '中关村':{ 18 '爱奇艺':{}, 19 '汽车之家':{}, 20 'youku':{}, 21 }, 22 '上地':{ 23 '百度':{}, 24

Python之路,Day2 - Python基础2

Python之路,Day2 - Python基础2 本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 1 names = ['Alex',"Tenglan",'Eric'] 通过下标访问列表中的元素,下标从0开始计数 1 2 3 4 5 6 7 8 >>> names[0] 'Alex' >>> na

Python之路 day2 字符串/元组/列表/字典互转

1 #-*-coding:utf-8-*- 2 3 #1.字典 4 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} 5 6 #字典转为字符串,返回:<type 'str'> {'age': 7, 'name': 'Zara', 'class': 'First'} 7 print type(str(dict)), str(dict) 8 9 #字典可以转为元组,返回:('age', 'name', 'class') 10 print tup

Python之路 day2 初识字典

1 #Author:ersa 2 ''' 3 key-value 键值对 4 字典是无序的,不需要下标,有key 5 字典的查找.修改.添加.判断.删除 6 ''' 7 8 info = { 9 'stu1101': "TengLan Wu", 10 'stu1102': "LongZe Luola", 11 'stu1103': "XiaoZe Maliya", 12 } 13 14 #输出 15 print("输出所有的key&qu

Python之路—Day2

结束了第一天的课程,第二天的课程听的有点晕晕乎乎,有太多的理论东西要理解,对于我这种本来就不聪明里面慢的人来说,真的太痛苦了.不过之前有看过老师的视频,对于理解还算有帮助,还好第二天讲的东西不是很多,慢慢来还能理解.现在跟着老师的课堂视频和博客在复习下第二天的内容吧!一.pyc是个什么鬼——就是鬼1. Python是一门解释型语言?我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言,那么

Python之路,Day2

pyc是个什么鬼? 1. Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写才对啊! 为了防止其他学习Python的人也被这句话误解,那么我们就在文中来澄清下这个问题,并且把一些基础概念给理清. 2. 解释型语言和编译型语言 计算机是不能够识别高级语言的,所以当我们运行一个高级语言程序的时候

Python之路—Day2作业

作业需求:1. 优化购物程序,购买时允许用户选择购买多少件:2. 允许多用户登录,下一次登录后,继续按上次的余额继续购买(可以充值):3. 允许用户查看之前的购买记录(纪录要显示商品购买时间):4. 商品列表分级展示:5. 显示已购买商品时, 如果有重复的商品, 不打印多行,而是在一行展示. 本程序包含文件:1.shopping.py 主程序2.shopping.jpg 流程图3.account.txt 用户信息列表4.login.py 用户登录模块5.userlog.txt 用户的购买记录及余

Python之路 day2 集合的基本操作

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #Author:ersa 4 ''' 5 #集合是无序的 6 集合的关系测试, 7 增加,删除,查找等操作 8 ''' 9 #列表去重 ==>转集合自动去重 10 list_1 = [1,3,5,7,9,11,2,4] 11 list_2 = [2,4,6,8,10] 12 13 print(list_1,list_2) 14 15 #列表转集合 16 list_1 = set(list_1)

Python之路 day2 文件基础操作

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #Author:ersa 4 ''' 5 #f,文件句柄;模式 a : append 追加文件内容 6 f = open("yesterday2",'a',encoding="utf-8") 7 8 f.write("\nWhen i was yount i listen to the radio\n") 9 f.write("I lo