[Python入门] python自学笔记
Python的简介
优点
1. 代码量少——运行速度慢
2. 对于初学者和完成普通任务,Python简单易用
3. 日常任务都可以完成
4. Python为我们提供了大量的基础代码库和第三方库
缺点
1. 运行速度慢
2. 代码不能加密
//本人使用visual studio进行学习
IDLE常用快捷键
快捷键 | 说明 |
---|---|
F1 | 打开Python帮助 |
Alt+P | 浏览历史文档(上一条) |
Alt+N | 浏览历史文档(下一条) |
Alt+/ | 自动补齐前面曾经出现过的单词 |
Alt+3 | 注释代码块 |
Alt+4 | 取消代码的注释 |
Alt+g | 转到某一行 |
Ctrl+] | 缩进代码 |
Ctrl+[ | 取消代码缩进 |
Ctrl+F6 | 重启Python shell |
Python语言基础
注释规则
- 单行注释
- 使用#作为单行注释的符号
- 从符号#开始到换行为止,其他后面所有的内容都作为注释被Python编译器所省略
- 单行注释可以放在要注释代码的前一行,也可以放在要注释代码的后一行
#这是注释
print("hello")
--------------------------------
print("hello") #这是注释
- 多行注释
- 将其包含在一对三引号中
- 在引号中并且不属于任何语句的内容被认为是注释,被解释器忽略
- 注意:三引号是字符串界定符,所以,如果三引号在语句中出现,那就是字符串,不是注释
- 中文注释
- Python中,提供了一种特殊的中文注释,为了解决Python 2.X不能使用中文注释的问题,在Python 3.X已经解决
- 可以加上-*-,但是没有特殊作用,只是为了美观
"""# coding =编码""" coding为注释的内容 其中编码常用UTF-8,GBK
- 代码要求
- 在添加注释的时候,要有意义,即注释能充分体现代码的作用
- 注释可以出现在代码的任意位置,但是不能分隔关键字和标识符
- 在使用IDEL开发环境的时候,可以通过快捷键Alt+3将代码注释掉
- 多行注释通常用来为Python文件,代码,类或者函数等添加权限,功能等信息(版权,功能及修改日期)
代码缩进
- Python采用代码缩进和冒号区分代码之间的层次,而不是使用大括号{}
- 对于类定义,函数定义,流程控制语句,以及异常处理语句,行尾的冒号和下一行的缩进代表代码块的开始,缩进结束代表一个代码块的结束
- 缩进可以使用空格或者tab键
- 使用空格的时候,通常使用4个空格作为一个缩进量
- 使用tab的时候,通常使用一个tab键作为一个缩进量
- 通常情况下建议使用空格进行缩进
- Python对代码的缩进要求非常严格
同一个级别的代码块的缩进量必须相同同一个级别的代码块的缩进量必须相同
如果不采用合理的代码缩进,将抛出SyntaxError
编码规范
-
编码规则
Python采用PEP 8 作为编码规范
(Python ENhancement Proposal)Python增强建议书- 每一个import语句只导入一个模块,尽量避免一次导入多个模块
- 不要在行尾添加分号,也不要使用分号将两条命令放在同一行
- 建议每一行不超过80个字符,如果超过,建议使用小括号将多行内容隐式的,不建议用反斜杠进行连接
- 但是以下的情况除外:导入的模块过长,注释里的URL
- 使用必要的空行可以增强代码的可读性:一般在顶级定义的(函数或类的定义)之间空两行,而方法定义之间空一行,另外,在用于分隔某些功能的位置可以空一行
- 通常在运算符两侧,函数参数之间,逗号两侧要使用空格进行分隔
- 避免在循环中使用+和+=操作符累加字符串,因为字符串是不可变的,这样做会创建不必要的临时对象,推荐将每一个字符串加入列表,然后在循环结束之后使用join()方法进行连接列表
- 适当使用异常处理结构使程序提高容错性,但是不能过多依赖异常处理结构,适当使用显式判断
-
命名规范
- 模块名尽量短小,并且全部使用小写字母,可以使用多个下划线分隔多个字母
- 包名尽量短小,并且全部使用小写字母,不推荐使用下划线,使用点分隔
- 类名采用单词首字母大写的形式(Pascal)
- 模块内部的类采用下划线+Pascal风格的类名组成
- 函数,类的属性和方法的命名方式与模块类似,也是全部采用小写字母,多个字母间采用下划线翻个
- 常量命名采用全部大写字母,可以使用下划线
- 使用单下划线_开头的模块变量或函数是受保护的,在使用import*from函数语句从模块中导入时这些变量或者函数不能被导入
- 使用双下划线__开头的实例变量或方法是类私有的
Python中的变量
与c++对比学习
变量的定义
-
保留字和标识符
- 注意:
- Python中的保留字是区分大小写的,例如if是保留字,但是IF不是保留字
- Python中的名称不能含有保留字部分
- 注意:
-
标识符
-
标识符可以理解成为一个名字,主要用来标识变量,函数,类,模块和其他对象的名称
-
命名规则
- 由字母,下划线和数字组成,并且第一个字符不能是数字,目前Python中只允许使用ISO-Latin字符集中的字符A~Z 和 a~z,
- 不能使用Python中的关键字
- 不能含有空格,@,%,$等特殊字符
-
区分大小写
-
以下划线开头有特殊意义,一般不允许自定义标识符使用
开头 意义 单下划线 不能直接访问的类属性 双下划线 类的私有成员
以双下划线开头或结尾的Python中的专用的标识
在Python中允许使用汉字作为标识符,但是不建议使用
-
变量的使用
- 变量的类型可以随时变化
使用内置函数type()可以返回变量类型
- 相同的值对应的地址相同
可以使用内置函数id()返回变量所指的地址
基本数据类型
整数
- 位数是任意的,自动转换高精度计算
- 八进制数字以0o开头
- 十六进制数字以0x开头
浮点数
-
在使用浮点数进行计算时,可能会出现小数点位数不确定的情况
例:0.1+0.2=0.30000000000000004
复数
- 使用j或J表示虚部
字符串
- 字符串属于不可变序列
- 使用单引号,双引号,三引号括起来
- 单双引号的字符必须在一行中
- 三引号的字符序列可以分布在连续的多行上
- Python字符串支持转义字符
- 在字符串界定符前加上字母r或R,该字符串将不被转义输出
print(r"字符串 字符串")
布尔类型
- 布尔值在Python中可以进行数值计算
- 所有的对象都可以进行真值计算,一下为假值情况
- false或none
- 数值0,包括0 、 0.0、虚数0
- 自定义对象的实例,该对象的__bool__ 方法返回false或__len__方法返回0
数据类型转换
- 常用类型转换函数
- 需要注意的是,在使用类型转换函数时,提供给它的数据必须是有意义的。
- 在一个字符串中输出不同类型的变量就需要类型转换
基本输入和输出
使用input()函数输入
- 在Python中,使用内置函数input()可以接受用户在键盘输入
variable = input("提示文字")
其中variable为保存驶入结果的变量,
双引号内的文字是用于提示用户输入内容
- 在Python3.X中,输入的内容被当做字符串处理,在进行类型转换
使用print()函数输出
- 默认情况下,在Python中,使用内置的print()函数可以将结果输出到IDLE或标准控制台上
print("输出内容")
输出内容课是数字,字符串,
可以是包含包含运算符的表达式,直接输出表达式结果
- 在Python中,默认情况下,一句print语句输出后会自动换行
如果不想换行,可以将输出的内容用半角逗号分隔
print("a,b") 输出变量a和b
运算符和表达式
运算符
算术运算符
与c++对比学习
- //是取整数,即返回商的整数部分
- x**y 幂,即返回x的y次方
- 说明:
- 在算术运算符中使用%求余,如果第二个操作数为负数,就返回一个负数
- 使用除法/和//时,除数不能为0
赋值运算符(略)
比较运算符(略)
逻辑运算符
- 只含有and,or,not
位运算符
同java,但是没有>>>
- 在遇到表达式与2乘除时,建议使用位移运算符,速度更快
优先级
- 在编写程序的时候尽量使用()来限定运算符次序,以免次序发现错误
条件表达式
- 关键字if
r=a if a>b else b
流程控制语句
程序结构
- 分为3种:选择语句,判断语句,循环语句
选择语句
- if语句
if 表达式:语句块1 else 语句块2
if 表达式1:语句块1 elif 表达式2:语句块2. …else 语句块n
- 注意:在使用if条件判断时,要注意缩进
如果出现if多于else情况,解释器根据缩进情况确定else语句是属于那个if的 - 规范写法
""" 规范的书写""" if flag: #表示为真 if not flag :#表示为假
""" 不规范的书写""" if flag ==True: if flag == False
循环语句
while循环
whlie 条件表达式:循环体
- 没有do-while的表达式
for循环
- for 循环是一个计次循环,一般在循环次数已知情况下,通常适用于枚举或遍历序列,迭代对象中的元素
for 迭代变量 in 对象 :循环体