先说说Python在代码上最直观的特点吧:
- 每个语句结尾不用写“;”
- 语句块不需要用“{}”包起来,而是用4个空格(或者一个制表符),比如if、for和函数声明。被缩进的部分,就相当于是被包在“{}”中了。但是别忘了要加冒号,下面会具体说。
另外Python 2.7和Python 3.x还是有些区别的,以下的示例,除非特别声明,都是以Python 2.7为例。
基本数据类型
Python中的基本数据类型,包括字符串、布尔类型、整数、浮点数、数字、列表、元组、字典、日期。
字符串
Python中在声明字符串的时候,单引号和双引号没什么区别。三个单引号可以用来声明多行字符串,并且可以在两个三引号之间任意使用单引号和双引号。
str1 = "something"
str2 = '''something
and some other things'''
布尔类型
没啥好说的,就是True或者False,注意第一个字母大写。
bool1 = True
bool2 = False
数字
其实数字包括整数int和浮点数float,但是实际用起来,很少情况需要考虑这么细。一般是在数值计算的时候才会出一些问题,遇到了就去搜解决方案吧~
num1 = 2 #整数
num2 = 1.5 #浮点数
列表和元组
列表(array)和元组(tuple)是Python中最重要的数据类型之一了。列表与元组的区别,就是列表可以增删改,但是元组不行。
下面以列表为例。
# 列表声明
arr1 = [1, 2, 4, 8, 16]
arr2 = range(100) # arr2 = [0, 1, 2, ... 97, 98, 99]
arr3 = [2*x+1 for x in range(10)] # arr3 = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
# 列表访问,下标从0开始
print len(arr1) # 返回arr1的长度5
print [1, 2, 3] + [4, 5, 6] # 拼接两个列表,返回[1, 2, 3, 4, 5, 6]
# 上面这个还可以写成:
# arr = [1, 2, 3]
# arr = arr.extend([4, 5, 6])
# print arr
print ['A'] * 4 # 生成列表,返回['A', 'A', 'A', 'A']
print arr1[0] # 1
print arr2[:] # 相当于没有切片,返回[0, 1, 2, ... 97, 98, 99]
print arr3[3:5] # 返回下标3~5的元素[7, 9, 11]
print arr3[:5] # 返回arr3中开头5个元素[1, 3, 5, 7, 9]
print arr3[-5:] # 返回arr3中最后5个元素[11, 13, 15, 17, 19]
print arr3[3:-3] # 返回arr3中从开头第3个到倒数第3个之间的元素[7, 9, 11, 13]
# 列表操作
arr1[0] = 123 # 修改指定元素,arr1 = [123, 2, 4, 8, 16]
del arr1[2] # 删除指定元素,arr1 = [1, 2, 8, 16]
arr1.append(123) # 在末尾追加123,arr1 = [1, 2, 4, 8, 16, 123]
arr1.insert(2, 123) # 在指定下标位置添加元素,arr1 = [1, 2, 123, 4, 8, 16]
# 注意append和extend的区别
arr = [1, 2, 3]
arr.append([4, 5, 6]) # arr = [1, 2, 3, [4, 5, 6]]
arr.extend([4, 5, 6]) # arr = [1, 2, 3, 4, 5, 6]
而元组是这样的:
tpl1 = (1, 2, 4, 8, 16)
需要注意的是,如果元组中只有一个元素,需要在这个元素后面加逗号:
tpl2 = ('Hello',)
字典
这是另一个重要的数据类型。
# 声明字典
dic1 = {'A': 1, 'B': 2, 'C': 3}
# 访问字典
pirnt len(dic1) # 返回3
print dic1['A'] # 返回1
# 字典操作
dic1['A'] = 123 # dic1 = {'A': 123, 'B': 2, 'C': 3}
del dic1['A'] # dic1 = {'B': 2, 'C': 3}
日期
这个最常用的就是从日期到字符串,和从字符串到日期了。
需要引用time和datetime:
import time, datetime
print time.strftime('%Y-%m-%d %H:%M:%S') # 返回例如'2016-07-06 15:20:34'
tm_obj = datetime.datetime.strptime('2016-07-06 15:20:34','%Y-%m-%d %H:%M:%S')
# tm_obj为datetime对象
常用语句
函数声明
def func_name(args):
# do something
return values # or not
if语句
首先声明,这不是if语句的完整用法,却可以Cover住60%的使用场景。
if condition_expression:
# do something
else:
# do some other things
for循环语句
同样,这不是for循环语句的完整用法。
for x in ['A', 'B', 'C']:
# do something with i
for i in range(100):
# i的取回范围0~99
# do something with i
range获取范围
range用来获取指定范围内的整数,返回array对象
range1 = range(10) # range1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range2 = range(3, 10) # range2 = [3, 4, 5, 6, 7, 8, 9]
input输入
input从sys.stdin中读取一行内容,并返回字符串。
str = input('Please type something:')
print输出
print向sys.stdout中输出内容。
# Python 2.7 中print还是语句
print 'something'
# 到Python 3.x 中已经变成函数了
print('something')
数据库操作
以下基本是访问数据库的通用方法,根据不同的数据库,载入不同的包。比如MySQLdb或者sqlite3。
- connect是打开数据库连接的通用函数,在参数中提供数据库URI,账户密码等参数,返回链接对象。
conn = connect(connect_args)
- cursor是一个从链接对象生成的游标。对于数据的增删改查,都要基于这个
cur = conn.cursor()
- execute是具体执行SQL语句的函数,这个函数属于之前获得的cursor对象。
cur.exexute(sql_expression)
- 对于SELECT语句,fatchall会获得执行SELECT语句之后查到的所有记录。返回的记录集是一个列表(array),记录集中的每条记录是一个元组(tuple,不可修改哦~),每个字段的值是元组中的一个元素。
cur.fetchall()
- 对于CREATE、UPDATE、DELETE和INSERT等语句,使用commit提交修改。这个函数属于数据库链接对象。
conn.commit()
- 最后,使用close方法关掉链接。这个方法属于数据库链接对象conn。
conn.close()
大功告成~!