初识python

//控制台交互
myname = raw_input("please input your name:")
输入
print myname

//抓去网页代码
import requests
re=requests.get("http://xxxxx")
savefile=open("xxxx.html","w")
savefile.write(res.content)
savefile.close()
查看xxx.html

基本数据类型

  • 大小写敏感
  • 变量引用计数
  • del语句可以直接释放资源,变量名删除,引用计数减一
  • 变量内存自动管理回收,垃圾收集(一般内存不够用时)
  • 代码存在时,中文报错--> #coding=utf-8

    #函数定义格式--缩进表示函数体
    def add(x,y):
    z = x+y
    return z
    res = add(3,5)
    print res

    // 局部变量(函数体内部定义)、全局变量(外)
    //出错例子,函数内有局部变量定义,解释器不使用全局变量,局部变量的定义晚于被引用所以报错

    def p_num():
    print num//使用的是未定义的对象
    num=5
    print num
    num =10
    p_num
    print num
  • 函数体内修改全局变量

    def p_num():
    global num
    print num
    num = 8
    num=10
    p_num
    print num
    //先输出10再8
  • 位运算

    ~a //按位取反(每个比特位取反)
    a << n //a右移动n位
    a >> n //a右移动n位
    a ** b //a的b次幂
    a // b //a除b向下取整
    a & b //a和b按位与--同1为1
    a | b //a和b按位或--有1为1
    a ^ b //a和b按位异或--同为0异为1
  • 逻辑表达式

    not a //a的逻辑非
    a and b //a和b的逻辑与
    a or b //a和b逻辑或
    a is b //a和b是同一个对象
    a is not b //a和b不是同一个对象
  • 关系表达式

    == //等于
    != //不等于
    <> //不等于(废弃)
    > //大于
    < //小于
    >= //大于等于
    <= //小于等于
  • 分支语句--不用小括号,条件后需要 : ,靠缩进表示语句块

    #if-else
    if a>b:
    print("a>b")//子逻辑
    else:
    print("a<b")//子逻辑
    #if-elif -else
    if a>b:
    print "a>b"
    elif a==b:
    print a==b
    else:
    print "a<b"
  • 循环语句

    #while
    while 条件:
    执行语句
    #for--循环遍历任何序列(列表/字符串)
    for 名 in 集合
    执行语句
    #例子--一次循环打印
    for letter in 'python'
    print 'current letter:',letter
    #for-else--else中的语句会在循环正常执行完的情况下执行
    count = 0
    while count < 5:
    print(count,"is less than 5")
    count = count + 1
    else:
    print(count,"is not less than 5")
  • break

    终止循环语句

  • continue

    退出本次循环

比较高级数据类型

列表(数组),元组(),字典()

  • 列表--存储类型可以任意,包括再添加一个列表

    #定义
    demolist = [1,2,3,4]
    #访问
    print demolist
    demolist[1]
    demolist[2]
    #修改
    demolist[1]=10
    #删除
    del demolist[1]
    #出栈
    demolist.pop()//弹出右边一个
    #追加
    demolist.append(xx)
    #判断列表元素个数
    len(demolist)
    #列表拼接
    demolist + [100,200]
    #复制(在列表内)
    demolist * 2
    #判断元素是否存在
    xx in demolist
    #取区间元素--前5个
    demolist[0:5]
    #比较两个列表元素
    cmp(list1,list2)
    #返回列表的最大值/最小值
    max(list)
    min(list)
    #将元组转化为列表
    list(seq)
    #计算某个元素在列表中出现的次数
    list.count(xx)
    #在列表末尾一次性追加另一个序列中的多个值(用新的列表扩展原来的列表)
    list.extend(seq)
    #在列表中找到某个值第一个匹配项的索引位置
    list.index(xx)
    #移除某个值的的第一个匹配项
    list.remove(xx)
    #反转列表中的元素
    list.reverse()
    #对原列表进行排序
    list.sort()
  • 元组(只读的列表)--与列表类似但元组的元素不能修改,可进行分片连接操作,使用小括号,列表使用方括号

    #定义
    aTuple = ('s',12,11)
    #访问元组
    aTuple[2]
    #删除元组
    组内元素不允许删除,可以del删除整个元组

    与列表的方法基本相同

  • 字典--映射数据类型由key-value构成,键与值间用:隔开,key独一无二 value必须不变,字典元素用{}

    dict =  {'helo':'234','jgoa':'123s'}
    #访问字典的值
    dict['hello']
    结果:234
    for key in dict:
    print key,dict[key]
    #修改字典的值,添加新的键-值
    dict['hello'] = 789
    #删除字典
    del dict['hello'] //清除键是hello的条目
    dict.clear()//清除字典所有条目
    del dict//删除字典