Python学习笔记_1_基础_2:数据运算、bytes数据类型、.pyc文件(什么鬼)

一、数据运算

Python数据运算感觉和C++,Java没有太大的差异,百度一大堆,这里就不想写了。比较有意思的是三元运算,记得C++和Java都有这个。。。

1 a,b,c = 1,3,5
2 d = a if a<b else c
3 d

可以看到:如果条件成立返回a,否则返回c。

二、bytes数据类型

原文:http://eli.thegreenplace.net/2012/01/30/the-bytesstr-dichotomy-in-python-3

Python 3 中最重要的新特性可能就是将文本(text)和二进制数据做了更清晰的区分。文本总是用unicode进行编码,以str类型表示;而二进制数据以bytes类型表示。

Python 3 中不能以任何隐式方式将str和bytes类型二者混合使用。不可以将str和bytes类型进行拼接,不能在str中搜索bytes数据(反之亦然),也不能将str作为参数传入需要bytes类型参数的函数(反之亦然)。

字符串和字节符之间划分界线是必然的,图解要牢记:

二级制数据除了用于保存视频、音频等文件外;在Python 3.x 网络编程中有重要作用,网络编程数据传输使用的正是二级制数据。

1 msg = "我爱你啊,祖国!".encode('utf-8')
2 msg
3 msg.decode('utf-8')

三、.pyc文件是什么鬼,说好的解释型语言呢?

初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,直到发现了*.pyc文件的存在。如果是解释型语言,那么生成的*.pyc文件是什么呢?

其实,随着Java等基于虚拟机的语言的兴起,解释型和编译型语言的界限变得越来越模糊。

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

例如Java执行程序的命令:

              javac hello.java

              java hello

Python执行的也是类似操作,只不过不需要用户显式调用!

Python的大致运行过程如下:

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

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

对于程序修改的问题,Python其实是检查.py文件和.pyc文件的时间戳,已新的为准!(自己没查过源码,道听途说。)

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

posted on 2018-08-27 13:27 104cz 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/104cz/p/9541703.html

Python学习笔记_1_基础_2:数据运算、bytes数据类型、.pyc文件(什么鬼)相关推荐

  1. Python学习笔记---merge和concat数据合并(1)

    Python学习笔记-merge和concat数据合并(1) Python学习笔记-merge和concat数据合并(2) 文章目录 Python学习笔记---merge和concat数据合并(1) ...

  2. Python学习笔记:基础

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  3. python笔记基础-Python学习笔记(基础)

    python基础学习笔记.语法.函数等. 基础定义utf-8文件头#!/usr/bin/env python3 # -*- coding: utf-8 -*- 2.循环// name是值 names是 ...

  4. python 学习笔记day03-python基础、python对象、数字、函数

    python基础 语句和语法 注释及续行 首要说明的是:尽管python可读性最好的语言之一,这并不意味者程序员在代码中就可以不写注释 和很多UNIX脚本类似,python注释语句从#字符开始 注释可 ...

  5. 数据结构学习笔记——存储结构和数据运算

    1.1.3存储结构 数据的逻辑结构的具体实现. 顺序存储结构: 采用一组连续的存储单元存放所有的数据元素,也就是说,数据元素在存储器中占有一整块存储空间,而且逻辑上相邻的两个数据元素在存储器中的存储位 ...

  6. 非理工科编程零基础文科生秒懂python学习笔记:pandas库数据表格创建和运算基础有哪些?

    #dataframe的数据类型 #每行的数据类型可以不一样 #行索引为index 等同于excel表格最左边的1.2.3.4 #列索引为column 等同于excel表格最顶端的A|B|C|D|E # ...

  7. python学习笔记:基础语法

    目录 python语言概述 python基础语法 python标准数据类型 1.数字类型 2.字符串类型 3.列表类型 4.元组 5.字典 python基础语法 1.条件判断语句 2.循环语句 3.函 ...

  8. Python学习之旅 —— 基础篇(二)数据类型、运算、while循环

    本篇要点: 常量定义 数据类型(重点是字符串的各种操作.列表和字典) 各种运算 while 循环 一.常量定义 虽然叫做常量,但是python中的常量是可修改的.(c语言中的常量不可修改.)常量的定义 ...

  9. python 学习笔记(基础输入输出,字符串,循环,三种数组)

    学习python发现这门语言和其他语言有很多不同之处,比如python的变量不需要要声明类型,python是解释性语言所以要注意函数定义的位置,python注重代码格式而不注重符号.python方便得 ...

最新文章

  1. wxWidgets:wxRichTextField类用法
  2. 掉电引起的ORA-1172错误解决过程(二)
  3. python职业发展方向_测试的职业发展方向有哪些?该如何规划?
  4. 【数位DP】好数(jzoj 1521)
  5. oracle crs 命令,ORACLE RAC CRSCTL 命令使用 及 执行的用户
  6. 搭建微信令牌中控服务器,使用ThinkJs搭建微信中控服务的实现方法
  7. python 切片_零基础学python_11_列表(切片+遍历切片+复制)
  8. 3D中obj文件操作
  9. matlab中s查找数据,在数据中查找信号 - MATLAB Simulink - MathWorks 中国
  10. python相关参考地址收藏
  11. Rust : 危险! 关于字符串切片以及取值......
  12. altair edem2021仿真模拟软件
  13. coherence mysql_Coherence Step by Step 第三篇 缓存(四) 缓存数据源(翻译)
  14. Linux下根据用户ID查询用户名
  15. 【YOLOv5报错】AssertionError: Label class 4 exceeds nc=4 in /xxxxxx解决方法
  16. python 斗破苍穹 词云
  17. 互联网日报 | 6月11日 星期五 | 滴滴正式提交赴美IPO申请;百度再投20亿成立造车公司;盒马集市将推出“盒字号”商品...
  18. scrapy爬虫框架简绍与安装使用
  19. 全球与中国投影面料市场深度研究分析报告
  20. 【问题解决】kersa ModuleNotFoundError: No module named ‘keras_applications‘ kersa_vggface

热门文章

  1. uCOS-II任务建立示例
  2. 【ubuntu-anaconda-dlib】undefined symbol: _ZTTNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESa
  3. 对于随机过程方面书籍的评论(转贴)
  4. ci/cd heroku_在Heroku上部署Dash或Flask Web应用程序。 简易CI / CD。
  5. 农村民间借贷一分利息,有借条受法律保护吗?
  6. 《魔鸟》:上帝可以宽恕,魔鬼却一个都不放过
  7. 边框回归的损失函数_分类损失函数,边框回归损失函数
  8. 电脑微信不用手机确认_不用安装第三方软件,手机投屏到电脑就这么简单
  9. html select选择事件_按键精灵的Html系列命令实战讲解
  10. 打包指令_Linux系统常用指令总结