Python基础-语法知识
——编程语言的发展史
机器语言
- 优点:执行速度够快
- 缺点:开发效率非常低
汇编语言
- 优点:执行效率相较于机器语言略低
- 缺点:开发效率相较于机器语言略高
高级语言
- C、C++、C#、java、PHP、python、go都属于高级语言
- 编译型:C、C++、PHP
- 解释性:C#、python、java(先编译后解释)
开发效率
- (解释型 > 编译型)> 汇编语言 > 机器语言
执行效率
- (解释型 < 编译型)< 汇编语言 < 机器语言
跨平台
- 解释型 > 编译型
——python解释器
Python是一门跨平台的脚本语言,Python规定了一个Python语法规则,实现了Python语法的解释程序就成为了Python的解释器
版本
- python 2.*
- python 3.*
种类
- IPython:是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互式上有所增强,但是执行python代码的功能和CPython是完全一样的。
- Jython:原名JPython;Java语言实现的Python。Jython可以直接调用Java的各种函数库。
- PyPy:是python开发者为了更好地Hack Python而用Python语言使用的Python解释器。PyPy提供了JIT编译器和沙盒功能,对Python代码进行动态编译,因此运行速度比Cpython还要快
- IronPython:IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的python解释器,可以直接将Python代码编译成.Net的字节码
执行代码的两种方式
- 交互式:cmd命令,编写python代码,即写即执行。缺点:代码易丢失
- 命令行执行:编写好python文件,cmd命令执行。
- 注意:python文件的后缀名py没有实际意义,是python程序员约定俗成的文件,表示该文件是python文件,实际上就是文本文件。
IDE工具—pycharm
- 专门用于编写python代码的集成代码工具
- 优点:提升开发效率
- 缺点:比较占用内存的资源
——注释—代码之母
- 单行注释:用【#】表示,快捷键是:Ctrl键 + / 键。取消注释也是Ctrl键 + / 键
# eg:
# 用于获取所有关键字
for i in keyword.kwlist:
print(i)
- 多行注释:用【'''…'''】或【"""…"""】表示,输入三次单引号或三次双引号(英文键盘下)都可以
'''
eg:
用于获取所有关键字
'''
for i in keyword.kwlist:
print(i)
或者
"""
eg:
用于获取所有关键字
"""
for i in keyword.kwlist:
print(i)
——变量
- 变:事物的庄客是可以变化的;量:描述事物的状态
- 变量用于存取事物的变化
- 变量的使用
- 变量名 = 变量值
# = 不是数学定义的等于,在这里是指将10赋值给了变量num
num = 10
变量的命名规范
- 只能由字母、数字、下划线组成,一定不要使用中文
- 不能由数字开头
- 区分大小写
变量的命名风格
- 驼峰体 eg:UserAge = 18
- 下划线体(使用该种方式) eg:user_age = 18
变量的三大特性
- value(值)
- id(内存地址)
- type(数据类型)
name = "dawn"
print(name) # value,输出的是name的值
print(id(name)) # id,输出的是name的内存地址
print(type(name)) # type,输出的是name的数据类型 #输出结果
dawn # value,输出的是name的值
2281405883504 # id,输出的是name的内存地址
<class 'str'> # type,输出的是name的数据类型
——常量
- python中是没有常量
- 根据实际需要,python程序员约定俗成,变量名中所有字母大写的情况下,默认为常量。通常情况,不可更改
——内存管理
小整数池:
整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。
Python 对小整数池的定义是 [-5, 256], 这些整数对象是提前建立好的,不会被垃圾回收。
所有位于[-5, 256]这个范围内的整数使用的都是同一个对象。
>>> a = 256
>>> b=256
>>> print(id(a))
140703921377520
>>> print(id(b))
140703921377520
>>> a = -6
>>> b = -6
>>> print(id(a))
1742149284848
>>> print(id(b))
1742119225520
>>> c = -5
>>> d = -5
>>> print(id(c))
140703921369168
>>> print(id(d))
140703921369168
——垃圾回收机制
- 引用计数:当内存中的值引用计数为0,垃圾回收机制就会自动清除
- 标记清除:当应用程序将内存撑满的时候,会自动停止,清除垃圾
- 分代回收:在历经多次扫描的情况下,都没有被回收的变量,gc机制就会认为,该变量是常用变量,gc对其扫描的频率会降低。
Python基础-语法知识的更多相关文章
- python之最强王者(2)——python基础语法
背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...
- Python 基础语法(三)
Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)------------------------- ...
- Python 基础语法(四)
Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ...
- Python 基础语法(二)
Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...
- Python 基础语法
Python 基础语法 Python语言与Perl,C和Java等语言有许多相似之处.但是,也存在一些差异. 第一个Python程序 E:\Python>python Python 3.3.5 ...
- 吾八哥学Python(四):了解Python基础语法(下)
咱们接着上篇的语法学习,继续了解学习Python基础语法. 数据类型大体上把Python中的数据类型分为如下几类:Number(数字),String(字符串).List(列表).Dictionary( ...
- python学习第五讲,python基础语法之函数语法,与Import导入模块.
目录 python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 1.函数语法定义 2.函数的调用 3.函数的文档注释 4.函数的参数 5.函数的形参跟实参 6.函 ...
- python学习第四讲,python基础语法之判断语句,循环语句
目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...
- Python基础语法(三)
Python基础语法(三) 1. 数值型数据结构 1.1 要点 在之前的博客也有提到,数值型数据结构在这里就不过多介绍了.在这里提及一些需要知道的知识点. int.float.complex.bool ...
随机推荐
- wordpress新注册用户或重置密码链接失效
在网上找了好多个博客,一个比一个不要脸,要更改的是两个文件,最后都抄成一个文件了. 原文链接https://www.cnblogs.com/liudecai/p/6474611.html 我是按照这个 ...
- CSS动画,2D和3D模块
CSS3提供了丰富的动画类属性,使我们可以不通过flash甚至JavaScript,就能实现很多动态的效果.它们主要分为三大类:transform(变换),transition(过渡),animati ...
- Python入门系列【附】进阶教程
如题,本篇将讲解Python提升之路:Python作为语法简单易学的语言,入门容易精通却很难,这是共识,那么为什么会有这样的共识?精通Python的难度在哪里? Python拥有简单.形象.直观的语法 ...
- 500行代码,教你用python写个微信飞机大战
这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手. 帮助蹲厕族.YP族.饭圈女孩在无聊之余可以有一样东西让他们振作起来!让他们的左手 / 右 ...
- Java自动化测试框架-01 - TestNG之入门篇 - 大佬的鸡肋,菜鸟的盛宴(详细教程)
TestNG是什么? TestNG按照官方的定义: TestNG是一个测试框架,其灵感来自JUnit和NUnit,但引入了一些新的功能,使其功能更强大,使用更方便. TestNG是一个开源自动化测试框 ...
- 爬虫之beautifulsoup篇之一
一个网页的节点太多,一个个的用正则表达式去查找不方便且不灵活.BeautifulSoup将html文档转换成一个属性结构,每个节点都是python对象.这样我们就能针对每个结点进行操作.参考如下代码: ...
- c#之线程基础(一)
可以认为线程是一个虚拟进程,用于独立运行一个特定的程序. 1.使用c#创建线程 using System; using System.Threading; //3 namespace MutiThre ...
- MySQL索引的建立与实现
一.索引介绍 1.MySQL中,所有的数据类型都可以被索引,索引包括普通索引,唯一性索引,全文索引,单列索引,多列索引和空间索引等. 2.额外的:我已知的自动创建索引的时机:创建主键,唯一,外键约束的 ...
- 基于KVM的SRIOV直通配置及性能测试
SRIOV介绍.VF直通配置,以及包转发率性能测试 小慢哥的原创文章,欢迎转载 目录 ▪ 1. SRIOV介绍 ▪ 2. 环境说明 ▪ 3. 开启SRIOV ▪ 4. 生成VF ▪ 5. VF直通 ▪ ...
- Java微服务(二):负载均衡、序列化、熔断
本文接着上一篇写的<Java微服务(二):服务消费者与提供者搭建>,上一篇文章主要讲述了消费者与服务者的搭建与简单的实现.其中重点需要注意配置文件中的几个坑. 本章节介绍一些零散的内容:服 ...