数据类型
基本类型
整数:Python可以处理任意大小的整数,当然包括负整数
浮点数:就是小数
字符串:以单引号’或双引号”括起来的任意文本,可以用转义字符\来标识
布尔值:可以直接用True、False表示布尔值(请注意大小写),布尔值可以用and、or和not运算。
空值:空值是Python里一个特殊的值,用None表示。
集合类型
list:以下是list的用法
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#定义list,跟js的数组感觉差不多,但这个显得更js一点
iamlist= ['l1', 'l2', 'l2','l3']
#查询第n个元素,就像操作数组一样
iamlist[n-1]
#追加元素
iamlist.append('l4')
#用一个函数计算list的长度,跟mysql的感觉差不多,居然不是iamlist.length,因为他没有这个属性
len(iamlist)
#插入到索引号为1的地方
iamlist.insert(1, 'l1')
#弹出末尾元素/指定索引元素
iamlist.pop()/pop(i)
#list里面的元素的数据类型也可以不同!!
iamlist = ['str', 123, True]
#排序
iamlist.sort()
tuple:发音【tʌpl】,意思是元组。
#list用【】定义,他用()。它也没有append(),insert()这样的方法,而且元素不可变
iamtuple= ('t1', 't2', 't3')
#只有1个元素的tuple定义时必须加一个逗号,,来消除歧义
iamnottuple=(1)
iamtuple=(1,)
dict:字典,同map类似
#同json格式
iamdict = {'k1': 'v1', 'k2': 'v2'}
#获取key,两种方式,-1是默认值,可以不指定
iamdict['k1']/iamdict.get('k1',-1)
#如果key不存在,会报错
iamdict['k3']
#判断字典中是否包含key
'k3' in iamdict
#删除key
iamdict.pop('k1')
set:集合,这个类型就比较特殊了,各种特殊
#初始化时,需要set(list),set像个函数
iamset = set([1, 2, 3])
t = set("Hello") #创建一个唯一字符的集合
s.update([10,37,42]) # 在s中添加多项
#添加元素用add,同Java
iamset.add(4)
#移除,也同Java
iamset.remove(4)
#集合操作
a = t | s # t 和 s的并集
b = t & s # t 和 s的交集
c = t – s # 求差集(项在t中,但不在s中)
d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中)
语法
if:条件判断,注意“:”和四个空格的缩进,能省的好像都省了!
age = 3
if age >= 18:
print('i am adult')
print('i am adult too')
elif age >= 6:
print('teenager')
else:
print('他还是个孩子')
for/while:又是冒号
iamlist= ['l1', 'l2', 'l3']
for l in iamlist:
print(l)
sum = 0
n = 2
while n >= 0:
print(n)
n = n - 1
函数:用def进行定义,注意函数体缩进
#一般函数
def my_abs(x):
if not isinstance(x, (int, float)):
raise TypeError('bad operand type')
if x >= 0:
return x
else:
return -x
#空函数:pass
def nop():
pass
#缺少pass就会报错
if age >= 18:
pass
#返回多个值,注意import导入包;
#Python的函数返回多值其实就是返回一个tuple
#angle=0为默认参数
import math
def move(x, y, step, angle=0):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
x, y = move(100, 100, 60, math.pi / 6)
r = move(100, 100, 60, math.pi / 6) #r为tuple类型