zoukankan      html  css  js  c++  java
  • python学习笔记

          作为脚本语言,python语言格式严格,同时和编译语言有些许类似,格式化输出,强类型等。感觉使用起来不是很顺手,同时,我一直对其的理解不是很清晰。直到自己动手搭建python环境后,发现python在某些方面确实比较方便。首先,强大的模块包,使大家可以不必重复造轮子,轻松地完成相应功能,而且python的包安装起来也十分方便(python setup.py install)。其次,python语法十分灵活,可以避免大家苦心构造所需的变量形式,极大地减轻了人力消耗。好了,这就是目前对python肤浅的理解。接下来,对一些零散的知识点记录一下,方便今后查看O(∩_∩)O哈哈~

    1、if not x  判断真假

    `if x is not None`和`if not x is None`写法等价,推荐`if x is not None`
     使用if not x这种写法的前提是:必须清楚x等于None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()时对你的判断没有影响才行。
     参考:http://blog.csdn.net/sasoritattoo/article/details/12451359

    2、id和is
    (ob1 is ob2) 等价于 (id(ob1) == id(ob2))

    "==" 与 "is"的区别:"=="是比较内容相当,如变量值相等;"is"是比较对象的id是否相等。下面是测试:

    >>> a = 1
    >>> b = 1
    >>> id(a)
    505300120
    >>> id(b)
    505300120
    >>> print(a == b)
    True
    >>> print(a is b)
    True
    >>> a = 1.0
    >>> b = 1.0
    >>> id(a)
    11372688
    >>> id(b)
    11372608
    >>> print(a ==b)
    True
    >>> print(a is b)
    False
    当a,b为1的时候id相同,而为1.0的时候不同,这种情况在string字符串的时候也会出现,即当很短的a,b赋值很短的字符串的时候,它们的id值相同,而很长的则不会;
    可以得到一个简单的结论就是:解释器在对值很小的int和很短的字符串的时候做了一点小优化,只分配了一个对象,让它们id一样了
    3. 判断变量是否在list之中     if x not in list;if x in list
    4、列表推导式   [x for x in list]
    5、元组与列表类似,不同之处在于元组的元素不能修改。也可以按下标取值等
    参考:http://www.runoob.com/python/python-tuples.html   python元组
    6、列表和元组可以连续赋值
    x, y = (1,2)或 (x, y) = (1,2)
    x=1,y=2
    # Assign values from a list
    (r,g,b) = ["Red","Green","Blue"]
    assert r == "Red"
    assert g == "Green"
    assert b == "Blue"
     
    # Assign values from a tuple
    (x,y) = (1,2)
    assert x == 1
    assert y == 2
    7、__init__.py:可以为空,只要它存在,就表明此目录应被作为一个package处理。python可以导入模块和函数
    参考:http://www.cnblogs.com/BeginMan/p/3183629.html  深入Python(2): __init__.py 用法
    8、连接数据库用MySQLdb返回元组,可以配置返回列表
    9、常用函数
    range
    >>>range(5)
    >>>[0,1,2,3,4]
    join
    >>> str = 'goujinping' 
    >>> ','.join(str) 
    'g,o,u,j,i,n,p,i,n,g'
    split
    >>>  str = "Line1-abcdef Line2-abc Line4-abcd"
    >>> str.split( )
    ['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
    append
    >>>aList = [123, 'xyz', 'zara', 'abc']
    >>>aList.append( 2009 )
    >>>print "Updated List : ", aList
    Updated List :  [123, 'xyz', 'zara', 'abc', 2009]

    10、脚标灵活,可以为负,脚标从0开始。[]不包括最右面的元素
    参考:http://woodpecker.org.cn/diveintopython/native_data_types/lists.html

    11、for强大,可以按行读取文件。
    for line in open("test.txt")
    for index,val in list 

  • 相关阅读:
    hdu 4849
    HDU4850 构造一个长度为n的串,要求任意长度为4的子串不相同
    2014 多校第一场官方题解。
    hdu4862 2014多校B题/ 费用流(最优情况下用不大于K条路径覆盖)(不同的解法)
    dp+分类讨论 Gym 101128E
    优先队列 逆向思维 Gym 101128C
    很好的脑洞题:dfs+暴力 Gym
    树dp...吧 ZOJ 3949
    扫描线(线段树)+贪心 ZOJ 3953
    dp ZOJ 3956
  • 原文地址:https://www.cnblogs.com/nerrissa/p/4727662.html
Copyright © 2011-2022 走看看