数据类型

基本类型

整数: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类型