本文章内容的python版本默认为python3.x

1、注释

注释包括单行注释,多行注释,中文声明注释

1.1、单行注释

注释内容从#号到换行为止结束
语法格式:

# 注释内容

注释格式:
第一种

#请输入你的年龄
age=int(input("请输入你的年龄"))

第二种

age=int(input("请输入你的年龄"))        #请输入你的年龄

1.2、多行注释

在python中没有一个单独的多行注释标记,而是将注释内容包含在一对(’’’…’’’’)或者("""…""")
语法格式:

'''
注释内容1
注释内容2
......
'''

或者

"""
注释内容1
注释内容2
......
"""

当然可以利用单行注释实现多行注释,如

#注释内容1
#注释内容2
#....

1.3、中文编码声明注释

在python编写时,如果要指定字符编码,那么就需要在文件开头加上中文编码声明注释,来指定我们所需要的字符编码类型的中文编码,可以避免输出乱码
语法格式:

#-*- coding:编码-*-

或者

#  coding=编码

# coding=utf-8

值得注意的是,上面代码中的-*-是为了美观才加上的,没有任务特殊作用,故也可写为 # coding:编码

2、代码缩进

python中使用代码缩进来区分代码的层次感,这点与c等一些语言不一样。

缩进可以使用空格键或者tap键,通常一个缩进量默认为为4个空格(可以修改),一个tap键为4个空格,不过,建议使用空格进行缩进。

注意:python中对代码缩进的要求非常严格,同一个级别的代码块的缩进量必须是相同的,否则将出现语法错误(SyntaxError)

3、代码规范

3.1、编写规则

pthon采用的是PEP8的编码规范,PEP是python Enhancement Proposal的缩写,8为版本

使用import进行导入模块时,注意,一次只导入一个模块。
推荐写法:

import os
import request

不推荐写法:

import os , request

不要在行尾添加“;”,也不用将2条命令放在同一行,然后用“;”隔开。python中换行代表中一个语句的结束。

建议每行不超过80个字,如果超过用()连接,不推荐""
如,推荐

print("是多少级看过的力合股份客户广泛空间看过空间看过很快就卡。"
            "夫卡的风格看看吃饭大概开发地方")

不推荐

print("是多少级看过的力合股份客户广泛空间看过空间看过很快就卡。\
            "夫卡的风格看看吃饭大概开发地方")

特殊情况除外
1.导入模块语句过长
2.注释里的URL

可以使用空行增加代码的可读性,如·在定义方法之间空一行等等。

3.2.命名规范

1、模块名尽量短小,且全部小写,可以使用下划线,如

game_age

2、包名尽量短小,且全部小写,不推荐使用下划线,如

com.book

3、类名采用单词首写字母大即是Pascal风格。如

BorrowBook

4、内部模块采用下划线加Pascal风格命名,如

_BorrowBook

5、函数、类的属性和方法的命令规则和模块类似

6、常量命名时全部大写,使用可以使用下划线

注意:
使用单下划线开头的模块变量或函数是受保护的,在使用import*from语句从模块中不能导入。
使用双下划线开头的实例变量或方法是类私有的。

4、基本的输入与输出

4.1、print()函数

print()基础语法:

print("输出内容")

注意print()语句输出后会自动换行,如果要一次输出多个内容,且不换行,可以用英文的半角逗号进行分开。如

print("a","b")

输出结果为a b

输出时间

import datetime                          # 调用时间模块datetime
d=datetime.datetime.now()
print(d)                                 # 输出当前日期和时间
print(d.strftime('%Y-%m-%d %H:%M:%S'))   # 按格式输出当前时间
print(d.strftime('%I:%M %p'))

print()不仅仅可以输出内容到屏幕还可以输出到指定文件

fp = open(r'F:\my.txt','a+')    # 打开文件,如果没有该文件将自动创建文件
print("hello world",file=fp)    # 输出到文件中
fp.close()                      # 关闭文件

4.2、input()函数

作用:input()在python中可以用来接收用户键盘输入的内容

如:

b = input("输入字符:")
print(b+"的ASCII码为",ord(b))

输出结果为:

输入字符:b            # b为我们输入的字符
b的ASCII码为 98

例子:根据输入的年份计算年龄

import datetime                                 # 调入时间模块datetime
imyear = input("请输入你的出生年份")   			# 输入四位数的出生年份
nowyear = datetime.datetime.now().year          # 获取当前的年份
age = int(nowyear) - int(imyear)                # 计算年龄
print("你的年龄为"+str(age))

注意判断一个变量的类型可以使用type()函数

例子:查单个字符的ACSII码器

b = 12
while b>0:
    a = input("请输入字符:")
    print(a + "的ASCII码为", +ord(a))

5、保留字与标识符

5.1、保留字

保留字就是被赋予特定意义的一些单词,这些单词不能被当作变量、函数、类、模块和其他对象的名称来使用(否则会报invalid syntax错误),python中保留字是区分大小写的,

python中的保留字,这边全部列出

and

as

assert

break

class

continue

def

del

elif

except

finally

for

from

False

global

if

import

in

is

lambda

nonlocal

or

pass

raise

return

try

True

while

with

yield

当然如果我们忘记了也不用紧,可以通过2行代码查看保留字

import keyword
print(keyword.kwlist)

5.2、标识符

简单说标识符就是一个名字,用来识别变量、函数、类、模块和其他对象的名称。

命名规则
1、由字母、下划线和数字组成,并且第一个字母不能是数字。目前python中只允许使用ISO-Latin字符集中的字符A-Z和a~z.
2、不能使用Python中的保留字
例如,合法标识符

USSSS
name
name123
name_age

不合法标识符

4name             # 不能以数字开头
if                # 不能以保留字当作标识符
$name			  #  不能使用特殊字符 空格、$、@、%等

3、区分字母大小写

4、以下划线开头的标识符具有特殊意义,要避免使用类似的标识符

以单下划线开头的标识符表示不能直接访问的类的属性,也不能太过from xxx import *导入

以双下划线开头的标识符表示类的私有成员

以双下划线开头和结尾的标识符是python中专用的标识,如__int__()表示构造函数

5、尽量避免使用汉字作为标识符,尽管这是被允许的。

6、变量

6.1、变量的命名规则与语法格式

变量的命名规则

1、变量名必须是一个有效的标识符

2、变量名不能使用python中的保留字

3、慎用小写字母 l 和大写字母O

4、应该选择有意义的单词作为变量名

语法格式

变量名 = value     #变量赋值
如
name = 12         # 创建变量name并赋值为12,类型为int
name = "John"     # 创建变量name并赋值为John,类型为str

注意,python中允许多个变量指向同一个值,但是他们对于的内存地址是否相同呢同,我们可以是内置函数id()来查看

例如

a = 2014
b = 2014
print("a的地址为",+id(a))
print("b的地址为",+id(b))

输出

a的地址为 2316677533424
b的地址为 2316677533424

7、基本数据类型

7.1、数字类型

1、整数
整数包括,十进制、八进制、十六进制

十进制不能以0开头

八进制在python3.x中必须以0o或0O开头,python2.x可以以0开头

十六进制必须以0x或0X开头

2、浮点数
浮点数表现形式,如2.7e2(科学计数法),1.1414

值得注意的是在使用浮点数进行计算时,可能会出现小数位数不确定的情况,如

a = 0.2
b = 0.1
c= a + b
print(c)

我们觉得输出0.3,但是实际输出0.30000000000000004,
所有语言都有这个问题,可以忽略对于的小数位

3、复数
在python中复数与数学中的复数在形式上完全一样

7.2、字符串类型

在python中字符串属于不可变序列
通常用单引号,双引号,三引号括起来。其中三引号内的字符序列可以分布在连续的多行中,而单引号,双引号内的字符序列必须在一行中。

注意如果需要表示复杂的字符串时可以进行引号的嵌套
如;

print(''''___' "_"***''')

输出

'___' "_"***

python中的字符串还支持转义字符
常见的转义字符如下表

\

续行符

\n

换行符

\r

回车符

\0


\t

水平制表,用于横向跳到下一制表位

\ "

双引号

\ ’

单引号

\

一个反斜杠

\f

换页

\0dd

八进制数,dd表示字符,如\012代表换行

\xhh

十六进制,hh表示字符,如\x0a代表换行

注意在字符串定界符引号的前面加上R或r,将无视转义字符的存在。

print(r"hello\nworld")
print("hello\nworld")

输出

hello\nworld
hello
world

7.3、布尔类型

标识符True和False为布尔类型
True表示1,False表示0

注意布尔类型可以进行运算但是不建议进行运算

在python中所有对象都可以进行真假测试,只有以下几种情况为假其他都为真。
1、False或None

2、数值中的零,包括0、0.0、序数0

3、空序列,包括字符串,空元组、空列表、空字典

4、自定义对象的实例,对象的__bool__方法返回False或者__len__方法返回0.

7.4、数据类型转换

python是动态类型语言(也就是弱类型语言),不需要先声明变量类型,但在对变量进行操作时可能用到类型转换。

常用的类型转换函数

函数

作用

int(x)

将x转为整型

float(x)

将x转为浮点型

complex(real[,imag])

创建一个复数

str(x)

将x转为字符串

repr(x)

将x转为表达式字符型

eval(str)

计算在字符串中的有效的python表达式,并返回一个对象

chr(x)

将整数x转为字符

ord(x)

将一个字符返回其所对应的整数值

hex(x)

将一个整数转化为一个16进制字符串

oct(x)

将一个整数转化为一个8进制字符串

8、运算符

8.1、算术运算符

加(+)、减(-)、乘(*)、除(/)、取余数(%)、取整除(//)、幂(**)

注意
1、在%中如果除数(第二个操作数)是负数,那么得到的结果也是负数

2、使用/或//时,除数不能为0,不然会出现错误

3、在python2.x中/符号计算的结果为整数,而在python3.x中为浮点数,如
3/2,在python2.x中为1,在在python3.x中为1.5

8.2、赋值运算符

常见的赋值运算符有=、+=、-=、*=、/=、%=、**=、//=等
在使用时,就是把=号右边的值赋值给左边的变量,也可以进行某些运算后再赋值给左边的变量。
如x-=y,就是等于x=x-y,
例子如下

x = 1
y = 2
x -= y
print(x)

输出x=-1

8.3、比较(关系运算符)

对表达式或者变量的结果进行大小、真假等比较,如果比较结果为真返回True,否则为False

比较运算符有:

>、 < 、==、!=、>=、<=

如果要判断一个变量是否在一个范围内可以使用 “ 值1<变量a<值2 ”

8.4、逻辑运算符

主要包括 and(逻辑与) or(逻辑或) not(逻辑非)
and和or 的结合方向是从左到右
not的不一样是从右到左

8.5、位运算符

位运算符是对二进制进行计算的,所以需要把要执行的数据转化为二进制数,然后再进行位操作。
python中位运算符有位与(&)、位或(|)、位异或(^)、位取反(~)、位左移(<<)、位右移(>>),

位运算符名称

算法

位与(&)

2个二进制数的对位都为1时才为1,否则为0 ,若2个操作数精度不同,则结果的精度与精度高的操作数相同

位或

2个二进制数的对位都为0时才为0,否则为1,若2个操作数精度不同,则结果的精度与精度高的操作数相同

位异或(^)

2个二进制数的对位相同时才为0,否则为1 ,若2个操作数精度不同,则结果的精度与精度高的操作数相同

位取反(~)

操作数中的1改为0,0改为1

位左移(<<)

将一个二进制操作数左移指定的位数,左边(高位段)溢出的位丢低,右边(低位段)的空位用0补充,位左移运算相当于乘以2的n次幂

右移(>>)

将一个二进制操作数右移指定的位数,右边(低位段)溢出的位用丢低,而在左边(高位段)的空位补充时,如果最高位为0,则在左侧补0,否则补1。位右移运算相当于除以2的n次幂

注意:
由于移位运算符运算速度很快,所有在程序中遇到表达式乘以或除以2的n次幂时可以用移位运算符来代替

8.6、运算符的优先级

python中运算符的运算规则是,优先级高的先执行,低的后执行,同一级的按从左往右进行操作。当然如果有括号,括号内的运算最先执行。在编写程序时尽量使用括号()来限定运算次序,以免运算次序出错
运算符的优先级(从高到低)

类型

**

~、+、-

*、/、%、//

+、-

<<、>>

^

位或

<、<=、>>、=!、=、==(比较运算符)

9、流程控制语句

9.1、选择语句

1、最简单的if语句
语法结构如下:

if 表达式:
	语句块

注意在python中,当表达式的值为非零或者非空的字符串时。if语句也认为是条件成立(为真值)
2、if…else语句
语法结构如下:

if 表达式:
	语句块1
else:
	语句块2

技巧:
if…else语句可以使用条件语句进行简化,如

a = 1
if a > 0:
    b =a
else:
    b = -a
print(b)

可以简化为(就是使用条件表达式)

a = 1
b = a if a > 0 else -a
print(b)

3、if…elif…else语句
语法结构

if  表达式1:
	语句块1
elif 表达式2:
    语句块2
elif 表达式3:
    语句块3
...
else:
    语句块n

注意:if与elif都需要进行判断真假,而else不需要判断;else和elif都需要与if一起使用,不能单独使用

4、if语句的嵌套
if选择语句可以有多种嵌套方式,根据需要灵活运用。

if 表达式1:
	if 表达式2:
		语句块1
	else:
		语句块2

9.2、循环语句

循环体就是一组被重复执行的语句。
1、whie循环
while循环结构

while 条件表达式:
	循环体

值得注意的是Python不支持do〜while语法、while(无限循环)和break组合起来替换 do ~ while

n = 0
while True:         #无限循环...     
      print n
      n += 1
      if n == 10:
      	   break     #结束循环

2、for循环
for循环结构

for 迭代变量 in 对象:
	循环体

如:

print("技术1+2+3+...+100结果为:")
result = 0
for i in range(101):
    result += i
print(result)

range()这个函数进行简单的说明

range(start,end,step)

start为计数的起始值,可以省略,省略就从0开始

end为计数的结束值,但是不包括该值,如range(5),会输出0,1,2,3,4,不可省略

step为计数的步长,就是2个参数之间的间隔,可以省略,省略就默认为1

小技巧
在python3.x中,如果让print语句输出的内容在一行上可以使用下面这个语句

print(result,end=' 分隔符 ')

for语句不仅可以循环数值,还可以逐个遍历字符串。

当然可以进行循环嵌套

9.3、跳转语句和pass空语句

1.break语句
break语句通常会结合if语句使用,在某种条件下跳出循环。如果是嵌套循环,那么break语句将跳出最内层的循环

如while语句中使用break语句

while 条件表达式1:
	执行代码
	if 条件表达式2:
		break

for语句中使用break语句

for 迭代变量 in 变量
	if 条件表达式:
		break

2.continue语句
break语句通常会结合if语句使用,在某种条件下跳出当次循环,进行下一次循环。如果是嵌套循环,那么break语句将跳出最内层的当次循环

如while语句中使用break语句

while 条件表达式1:
	执行代码
	if 条件表达式2:
		continue

for语句中使用break语句

for 迭代变量 in 变量
	if 条件表达式:
		continue

3、pass空语句
不做任何事,一般起到占位作用,为得是方便以后进行处理

for 迭代变量 in 变量
    	if 条件表达式:
    		语句块
    	else:
    		pass

10、数字运算类内置函数

函数名

作用

abs(x)

求绝对值,参数可以是整数,也可以是复数,复数就输出复数的模

oct(x)

将一个数字转为8进制字符串

hex(x)

将一个数字转为16进制字符串

chr(x)

返回整数x对应的ASCII的字符

ord(x)

返回x对应的ASCII的值

complex([real[,image]])

创建一个复数

divmod(a,b)

分别取商和余数,整数和浮点数都可以

float(x)

将x转化为浮点数,如果没有参数返回0.0

int([x[,base]])

将x转化为int型,base为进制

long([x[,base]])

将x转化为long型,base为进制

pow(x,y[,z])

返回x的y次幂

range(strat,stop[,step])

产生一个序列,默认从零开始

round(x[,n])

四舍五如=入

sum(iterable[,start])

对集合求和

bin(x)

将整数x转化为二进制字符串

bool([x])

将x转化为布尔类型