python基础之pip、.pyc、三元运算、进制、一切皆对象、可变与不可变类型
一、pip(下载工具==yum)
1、重点(必须掌握的)
列出已安装的包
pip list
安装要安装的包
pip install xxx
安装特定版本
pip install django==1.1.5
导出python的环境
pip freeze > requestment.txt
从导出的python环境中安装所需要的包
pip install -r requestment.txt
卸载导出的python环境中的包
pip uninstall -r requestment.txt
2、了解内容
升级包
pip install -U <包名>
显示包所在的目录
pip show -f <包名>
搜索包
pip search <搜索关键字>
查询可升级的包
pip list -o
下载包而不安装
pip install <包名> -d <目录> 或 pip install -d <目录> -r requirements.txt
更换国内pypi镜像
阿里:https://mirrors.aliyun.com/pypi/simple
豆瓣:http://pypi.douban.com/simple
中国科学技术大学:http://pypi.mirrors.ustc.edu.cn/simple/
pip install <包名> -i http://pypi.v2ex.com/simple
指定全局安装源
在unix和macos,配置文件为:$HOME/.pip/pip.conf
在windows上,配置文件为:%HOME%\pip\pip.ini
(1):在windows文件管理器中,输入 %APPDATA%
(2):会定位到一个新的目录下,在该目录下新建pip文件夹,然后到pip文件夹里面去新建个pip.ini文件
(3):在新建的pip.ini文件中输入以下内容,搞定文件路径:"C:\Users\Administrator\AppData\Roaming\pip\pip.ini"[global] timeout = 6000 index-url = http://pypi.douban.com/simple
pycharm常用快捷键
ctrl + ?:快速注释,快速解注释
tab:缩进4个空格
shift+tab:回退4个空格
ctrl + w:选中字符段
ctrl + d:复制
二、.pyc是个什么鬼?
1. Python是一门解释型语言?
Python是一门解释性语言,但是却存在*.pyc文件。如果是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写才对啊!
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的一种持久化保存方式。
三、三元运算
result = 值1 if 条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2
四、进制
- 二进制,01
- 八进制,01234567
- 十进制,0123456789
- 十六进制,0123456789ABCDEF 二进制到16进制转换
计算机内存地址及为什么用16进制? 为什么用16进制 1、计算机硬件是0101二进制的,16进制刚好是2的倍数,更容易表达一个命令或者数据。十六进制更简短,因为换算的时候一位16进制数可以顶4位2进制数,也就是一个字节(8位进制可以用两个16进制表示) 2、最早规定ASCII字符集采用的就是8bit(后期扩展了,但是基础单位还是8bit),8bit用2个16进制直接就能表达出来,不管阅读还是存储都比其他进制要方便 3、计算机中CPU运算也是遵照ASCII字符集,以16、32、64的这样的方式在发展,因此数据交换的时候16进制也显得更好 4、为了统一规范,CPU、内存、硬盘我们看到都是采用的16进制计算16进制用在哪里 1、网络编程,数据交换的时候需要对字节进行解析都是一个byte一个byte的处理,1个byte可以用0xFF两个16进制来表达。通过网络抓包,可以看到数据是通过16进制传输的。 2、数据存储,存储到硬件中是0101的方式,存储到系统中的表达方式都是byte方式 3、一些常用值的定义,比如:我们经常用到的html中color表达,就是用的16进制方式,4个16进制位可以表达好几百万的颜色信息。
五、一切皆对象
对于Python,一切事物都是对象,对象基于类创建
所以,以下这些值都是对象: "wupeiqi"、38、['北京', '上海', '深圳'],并且是根据不同的类生成的对象。
六、可变数据类型与不可变数据类型
1、定义:
(1)不可变数据类型:但该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称为不可变数据类型;
(2)可变数据类型:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称为可变数据类型。
(3)总结:
可变:值变,id不变(内存中的数据可以被改变)
不可变:值变,id就变(内存中的数据不可以被改变)
2、各个数据类型是否是可变数据类型的总结
数据类型 | 可变/不可变 |
整型 | 不可变 |
字符串 | 不可变 |
元组 | 不可变 |
列表 | 可变 |
集合 | 可变 |
字典 | 可变 |
3、赋值后id不改变
x = True #布尔类型 y = x print(id(x)) print(id(y)) ------------------------------------------ 140710466976080 140710466976080
In [4]: x = 123 #整型 In [5]: id(x) Out[5]: 140710467498448 In [6]: y = x In [7]: id(y) Out[7]: 140710467498448
In [8]: x = (1,2,3) #元组 In [9]: id(x) Out[9]: 563732066520 In [10]: y = x In [11]: id(y) Out[11]: 563732066520
In [12]: x = {'a':1,'b':2} #字典 In [13]: id(x) Out[13]: 563731953272 In [14]: y = x In [15]: id(y) Out[15]: 563731953272
In [16]: x = [1,2,3] #列表 In [17]: id(x) Out[17]: 563729896904 In [18]: y = x In [19]: id(y) Out[19]: 563729896904
In [20]: x = {1,2,3} #集合 In [21]: id(x) Out[21]: 563731316296 In [22]: y = x In [23]: id (y) Out[23]: 563731316296
转载于:https://www.cnblogs.com/renyz/p/11525805.html
python基础之pip、.pyc、三元运算、进制、一切皆对象、可变与不可变类型相关推荐
- Py修行路 python基础 (五)三元运算 字符编码 元组 集合 三级菜单优化!
三元运算 条件判断不能加冒号: a=3 b=5 c=a if a<b else b oct() 转成八进制的简写: 16进制 标志:BH为后缀或是0x为前缀 hex() 转成16进制 元组 跟列 ...
- Practical Python基础1(数据类型,运算,比较符号,字符串,列表,函数等)
Practical Python基础1(数据类型,运算,比较符号,字符串,列表,函数等) Python是一种解释性的高级编程语言.它通常被归类为"脚本语言",被认为类似于Perl. ...
- c++语言将任意进制转化10进制,C++ 基础编程之十进制转换为任意进制及操作符重载...
C++ 基础编程之十进制转换为任意进制及操作符重载 最近学习C++ 的基础知识,完成十进制转换为任意进制及操作符重载,在网上找的不错的资料,这里记录下, 实例代码: #include #include ...
- python实现颜色RGB转换颜色16进制
python实现颜色RGB转换颜色16进制 超级简单的实现过程 #coding:utf-8def RGB_to_Hex(tmp):rgb = tmp.split(',')#将RGB格式划分开来strs ...
- Python 字符串常见的语句,和练习题,字符串练习题 Python 切片函数修饰符 #精度和进制Python 字符串一些语句练课件练习题
字符串练习题 Python 切片 函数修饰符 #精度和进制 Python 字符串一些语句练 课件练习题 4,.by 字符串的替换 方法 描述 replac ...
- python基础之01数据类型-变量-运算浅解
python的数据类型 1 数字 数字分为整型(int),长整型(long),浮点型(float),复数(complex) 整型较为常用的功能: >>> a=-4 >> ...
- python蓝桥杯试题 基础练习 十六进制转十进制 实现进制转换
python将输入到的字符串转换为十进制输出 问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. 注:十六进制数中的10~15分别用大写的英文字母A.B.C.D. ...
- python字符串格式化、运算符优先级、进制转化、编码回顾
python基础 1.字符串格式化 1.1 % 1.1.1 %s 1.1.2 N个占位符 1.1.3 %d 1.1.4 百分比 %% 1.2 format 1.3 f 2.运算符优先级 2.0 逻辑运 ...
- 计算机系统-理论-CPU操作/处理数据的方式/寻址方式/局部性原理/位运算/进制转换
在计算机中,cpu将一切硬件,都看成内存,各种硬件在CPU的眼中都是下面这样子的 CPU对硬件的操作,其实就是和这些硬件的内存或者BIOS进行交互,CPU能做且只能做三件事 1.将某个地址中存储的字节 ...
- 位运算 进制转化 STL中bitset用法
2017-08-17 16:27:29 writer:pprp /* 题目名称:输入十进制以二进制显示 程序说明:同上 作者:pprp 备注:无 日期:2017/8/17 */ #include &l ...
最新文章
- MySQL中char与varchar的区别
- 以完美主义的名义,拖延症在公开掠夺
- system.DateTime ToDateTime(System.String)”,因此该方法无法转换为存储表达式-解决方法...
- linux与windows回车换行符的区别
- Python小游戏(贪吃蛇)
- hook(钩子函数)
- Golang的GC和内存逃逸
- python3序列化_python3 json序列化问题
- linux怎么启动ibus框架,fedora13 gnu/linux下 重启启动ibus输入法框架
- Spark DF:关于Row中的数值获取问题
- Windows上如何搭建web网站,并发布到外网可访问?2-2
- cad卸载工具_如何彻底卸载CAD?
- Crosses and Crosses
- 用计算机制作演示文稿教案博客,《创作演示文稿》教学设计
- linux shell 中文输入,Linux操作系统的Shell环境中输入中文
- python系统命令切换目录_windows cmd 指令 怎么切换目录
- Error could not open `Ejdklibamd64jvm.cfg‘问题解决
- [ElasticSearch] 空间搜索 (一)
- PCIe 4.0 SSD测试:接口、散热和CPU对性能的影响
- 景驰纠纷后续:潘思宁7月才发现法人被非法变更