基础语法
“shebang”声明、编码声明
声明一般都是写在文件最开头,用#注释的特殊行,有着特殊含义、用法。
#!/usr/bin/
# -*- conding: UTF-8
python标识符
在python里,标识符由字母、数字、下划线组成。但不能以数字开头。
以下划线开头的标识符有特殊含义。以单下划线开头_foo
的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用form XXX import *
而导入。
以双下划线开头的__foo
代表类的私有成员,以双下划线开头和结尾的__foo__
代表python里的特殊方法专用标识,如__init__()
代表类的构造函数。
行和缩进
python和其他语言最大的区别是:python的代码块不使用大括号{}来控制类、函数、以及逻辑判断。
python最具特色的就是使用缩进来写模块。
python引号
python可以使用引号(’)双引号(”)三引号(”’或”””)来表示字符串。
其中三引号可由多行组成,编译成多行文本的快捷语法,常用于文档字符串,在文件的特定位置,当作注释。
同一行显示多条语句
python可以在同一行中使用多条语句,语句之间用分号(;)分割。
#!/usr/bin/python
# -*- coding:UTF-8 -*-
import sys; x = 'abcde'; sys.stdout.write(x +'\n')
输入输出
格式化输出
格式化输出包括以下几种方法:
使用格式化字符串字面值,在字符串开头的引号/三引用号前添加f
或F
。在这种字符串中,可以在{
和}
字符串、之间输入引用的变量,或字面值的python表达式。
year = 2016
event = 'Referendum'
print(f'Result of the {year} {event}')
字符串的 str.format()
方法需要更多的手动操作。仍可以使用{
和}
来标记变量将被替换的位置并且可以提供详细的格式化指令、但需要提供待格式化的信息。
yes_votes = 42_572_654
total_votes = 85_705_149
percentage = yes_votes / total_votes
print('{:-9} YES votes {:2.2%}'.format(yes_votes,total_votes))
格式化字符串字面值(简称为f-字符串)在字符串前面加前缀f
或F
,通过{expression}
表达式,把python表达式的值添加到字符串内。
import math
print(f'The value of pi is approximately {math.pi:.3f}.')
#将pi舍入到小数点后三位
在’:’后传递整数,为该字段设置最小字符宽度,常用于列对其。
table={'Sjored':5954,'Jack':3524,'Dcab':3532}
for name,phone in table.items():
print(f'{name:10}==>{phone:10d}')
#{name:10}表示设置10个字符长度。
#{phone:10d}表示设置10个字符长度,并且右对齐。
字符串format()方法
str.format()
基础用法
print('We are the {} who say "{}!"'.format('knights','Ni'))
We are the knights who say "Ni!"
花括号及之内的字符(称为格式字段)被替换为传递给str.format()
方法的对象。话括号内的数字表示str.format()
方法的对象所在位置。
print('{0} and {1}'.format('spam','eggs'))
spam and eggs
print('{1} and {0}'.format('spam','eggs'))
eggs and spam
读写文件
open() 返回一个file object,最常使用的是两个位置参数和一个关键字参数:open(filename,mode,encoding=None)
第一个是文件名字符串。
第二个是包含描述文件使用方法的字符串。mode包括:
- r,表示文件只能读取。
- w,表示文件只能写入(现有同名文件会被覆盖)。
- a,表示打开文件并追加内容,任何写入的内容都会自动添加到文件末尾。
- r+,表示打开文件进行读写。
- mode实参是可选的,省略时的默认是值’r’
六大数据类型
python基本数据类型:
- Number(数字类型)
- String(字符串类型)
- Tuple(元组类型)
- List(列表类型)
- Set(集合类型)
- Dictionary(字典类型)
(前三者为不可变数据,或三者为可变数据)
1.数字类型
python的数字类型包括整数类型(int)、浮点数类型(float)、复数类型(complex)、布尔类型(bool)。
整数类型和数学中的整数概念相同。
浮点数对应数学中的实数,表示带有小数的数值。
复数类型对应数学中的复数。虚部用j或J表示。
布尔类型即True和False。
2.字符串类型
在python中用str表示字符串类型。
python提供了5个字符串基本操作符:
操作符 | 描述 |
x+y | 连接两字符串 |
x*n | x字符串复制n次 |
x in s (x not in s) | 判断x是否是s的子字符串,返回布尔值 |
str[i] | 索引,返回str字符串的第i个字符串 |
str[N:M:L] | 切片(从N到M,L为步长,可省略)【左闭右开】 |
内置字符串处理函数
函数 | 描述 |
len(x) | 返回字符串长度 |
str(x) | 返回任意类型所对应的字符串形式(转换为字符串) |
chr(x) | 返回Unicode所对应的单字符 |
ord(x) | 返回单字符对应的Unicode编码 |
hex(x) | 返回整数x对应十六进制数的小写形式字符串 |
oct(x) | 返回整数x对应的八进制的小写形式字符串 |
字符串常用处理方法(只列出部分)
方法 | 描述 |
str.lower() | 返回字符串副本,全部字符小写 |
str.upper() | 返回字符串副本,全部字符大写 |
str.islower() | 当字符串都是小写时,返回True,否则返回False |
str.isprintable() | 当字符串都是可打印的时,返回True,否则返回False |
str.isnumeric() | 当字符串都是数字时,返回True,否则返回False |
str.isspace() | 当str所有字符都时空格,返回True,否则返回False |
str.endswith(a,start,end) | 在[star,end]区间(可省略),以a结尾返回True,否则False |
str.startswith(a,start,end) | 在[star,end]区间(可省略),以a开头返回True,否则False |
str.split(sep=None,maxsplit=-1) | 对str分割,用sep为分隔符,分割前maxsplit个字符 |
str.count(sub,start,end) | 返回str中sub在区间中出现的次数,[star:end]区间可省略 |
str.replace(old,new,count) | (替换)返回str副本,old-new替换前count次,count可省略 |
str.center(width,fillchar) | 字符串居中,fillchar为宽度不足时的填补字符,可省略 |
str.strip([chars]) | 返回副本,在其左右两侧去掉chars中列出的字符,默认去掉两端空格 |
str.zfill(width) | 返回副本,长度为width,不足的长度左侧用0填补 |
str.format() | 返回字符串排版格式(format) |
str.join(iterable) | 返回一个新字符串,用str把iterable拼接起来 |
3.元组类型
元组(Tuple)是数据类型中较为特殊的一种,创建后不能修改,只能被重新创建。
创建元组时使用小括号,元素之间用逗号分隔(小括号可以省略)。
构造包含0个或1个元素的元组语法比较特别
tup1 = () #空元组
tup2 = (20,) #一个元素的元组,末尾要加一个逗号,用于区分这是一个元组,而不是一个普通的值。
4.列表类型
列表(list)是包含0个或多个对象引用的有序序列。
列表常用处理方法(只列出部分)
函数或方法 | 描述 |
ls[i]=x | 列表ls的第i项替换为x |
del ls[i:j] | 删除列表ls区间数据(左闭右开),等于ls[i:j]=[] |
ls.append(lt) | 将列表lt作为一个元素增加到列表ls中 |
ls.extend(lt) | 将列表lt的元素增加到列表ls中,等效ls+=lt |
ls.append(x) | 在ls列表最后增加元素x |
ls.clear() | 删除ls中全部元素 |
ls.insert(i,x) | 在列表的第i位置插入元素x |
ls.pop(i) | 将ls列表的第i项取出 |
ls.remove(x) | 删除列表中第一次出现的x元素 |
ls.reverse() | ls列表倒序排列,并保存在ls中 |
ls.sort(reverse=False) | 排序(默认False表示升序) |
5.集合类型
集合类型中的元素无序,不可重复,元素类型是能是固定数据类型。
集合使用大括号{}
表示,元素之间用逗号,
分隔。
可以使用set()
函数创建集合。
注意:创建一个空集合必须使用set()
而不是{}
,因为{}
是创建空字典。
6.字典类型
字典时另一种可变容器模型,且可存储任意类型对象。
字典的每个键值对key=>value用冒号分割,每对键值对之间用逗号分割,整个字典用花括号{}括起来。
创建字典:
mydict = {} #用花括号创建一个空字典
mydict = dict() #用dict()函数创建空字典
mydict = {'Name':'Wang','Age':18,'Class':'First} #创建一个字典,写入键值对
mydict['Tel']=848482 #给mydict字典增加一个键值对
del mydict['Age'] #清除'Age'对应的键值对
del mydict #删除整个字典
字典的函数与方法:
函数 | 描述 |
len(dict) | 计算字典元素个数 |
str(dict) | 输出字典 |
type(dict) | 返回dict的类型 |
dict.clear() | 删除字典内所有元素 |
dict.copy() | 返回一个浅拷贝 |
key in dict | 如果 键在字典中返回True,否则返回False |
dict.keys() | 返回所有的键 |
dict.values() | 返回所有的值 |
dict.items() | 返回所有的键值对 |
dict.update(dict2) | 把dict2的键值对更新到dict中(存在风险) |
以上是python最基础的语法和数据类型。
python还有条件控制、循环、推导式、函数、模块、类、包、数据库、面向对象编程等等很多内容。这里不再一一介绍。
具体详细内容建议参考python官方手册文档进一步学习。