Python学习笔记1(基础语法)
1.Python的文件类型:
- 源代码:扩展名以py结尾。python写的程序不需要编译成二进制代码,可以直接运行。pyw是Windows下开发图形界面的源文件。
- 字节代码:扩展名以pyc结尾,是编译过的字节文件,不能使用文本编辑工具打开或者修改。
- 优化代码:扩展名以pyo结尾,是优化过的源文件,需要用命令行工具生成。下面把hello.py编译成hello.pyo。
python -O -m py_compile hello.py
PS: 参数-O表示生成优化代码,-m表示吧导入的py_compile模块作为脚本运行
2.命名规则
- 变量名、包名、模块名 通常采用小写,可使用下划线
- 类名首字母大写,对象名小写。类的属性和方法名以对象作为前缀。类的私有变量、私有方法以两个下划线作为前缀。
- 函数名通常小写,并用下划线或单词首字母大写增加名称的可读性。
3.模块导入的规范
模块是类或函数的集合,用于处理一类问题。在Python中,要调用标准库或其他第三方库的类,需要先使用import或from....import...语句。
- import语句
import sys # sys模块是处理系统环境的函数的集合 print(sys.path) # 输出python环境下的查找路径的集合 print(sys.argv) # 存储输入参数的列表。默认情况下,自带参数为文件名
- from....import...语句(只导入模块中的一部分内容,并在当前命名空间中创建导入对象的引用)
from sys import path from import argv print (path) print (argv)
4.注释
使用 “#” 加若干空格开始。
- 中文注释:若代码中有中文注释,必须再python文件最前面加上如下注释说明。
# -*- coding : UTF-8 -*-
- 跨平台注释:若python程序运行在*nix系统中,最好再文件最前端加上如下注释说明。
#!/usr/bin/python
5.语句的分割
- python主要通过换行来识别语句的结束,因此行尾;可有可无。但当一行书写多个语句时,就必须使用;分隔
PS:通常一行只写一条语句,不使用分号
- python使用‘\’ 作为换行符。在实际中,一条语句写在多行也是常见的。
6.变量
- 变量不需要声明,如果变量没有赋值,python将认为变量不存在
- 在函数之外定义的变量都可成为全局变量,通常在文件的开头定义
7.数据类型
- 数字的类型有整型、浮点型、布尔型、分数类型、复数类型。
python内部没有普通类型,任何类型都是对象,python不能修改对象的值。
# 两个i不是同一个对象 i = 1 print( id(i)) i = 2
若要查看变量的类型,可以使用type类,是_builtin_模块的一个类,可返回变量的类型或创建一个新的类型。_builtin_模块是python的内联模板,不用import语句。
# 整型 i = 1 print( type(i)) # 输出 <class 'int'> # 长整型 l = 99999999999999999999990 # 什么时候python将int转换为float与操作系统位数相关 print type(l) # 浮点型 f = 1.2 # 布尔型 b = True # 复数类型 c = 7 + 8j print ( type(c) ) # 输出 <class 'complex'>
- python有3种表示字符串的方法——单引号,双引号,三引号。单引号与双引号作用一样。
三引号中可以输入单引号、双引号或换行等字符。(也可使用转义字符“\”)
PS:使用双引号或三引号可以直接输出含有特殊字符的字符串,不需要使用转义字符
# 三引号
str = '''he say "hello world" ''' print ( str )
# 双引号 str = " he say 'hello world' " print( str )
str = ‘’‘ he say 'hello world' ’‘’ #单引号与三引号间必有空格,否则解释器不能识别 print( str )
三引号的另一种用法是制作文档字符串。python的每一个对象都有一个属性_doc_,这个属性用于描述该对象的作用。
# 三引号制作doc文档 class Hello: '''hello class''' # 对Hello类的描述,被存在类的_doc_属性中 def printHeloo(): '''print hello world''' # 对函数的描述,被存在该函数的_doc_属性中 print("hello world!") print(Hello._doc_) # hello class print (Hello.printHello._doc_) # print hello world
8.运算符与表达式
- 新增求幂运算( x**y ),不支持自加自减运算。
print ( "1 / 2 = ", 1 / 2 ) # 0 print ( "1 / 2 = ", 1.0 / 2.0 ) # 0.5 print ( "2 ** 3 = ", 2 ** 3 ) # 8
- 关系运算符 < , <= , > , >= (优先级相等) 优先级大于 == , !=
- 逻辑运算符 :
逻辑与:and 逻辑或: or 逻辑非: not
print ( not True) print ( False and True) print ( True and False) print ( True or False)