Python学习(一)

来源:互联网 发布:com.cn域名怎么样 编辑:程序博客网 时间:2024/06/05 20:08

Python学习(一)


静态类型定义语言

一种在编译期间数据类型固定的语言。大多数静态类型定义语言是通过要求在使用所有变量之前声明它们的数据类型来保证这一点的。 Java 和 C 是静态类型定义语言。
动态类型定义语言
一种在运行期间才去确定数据类型的语言, 与静态类型定义相反。 VBScript 和 Python 是动态类型定义的, 因为它们确定一个变量的类型是在您第一次给它赋值的时候。
强类型定义语言
一种总是强制类型定义的语言。 Java 和 Python 是强制类型定义的。您有一个整数, 如果不明确地进行转换 , 不能将把它当成一个字符串。
弱类型定义语言
一种类型可以被忽略的语言, 与强类型定义相反。 VBScript 是弱类型定义的。在 VBScript 中, 您可以将字符串 '12' 和整数 3 进行连接得到字符串'123', 然后可以把它看成整数 123 , 所有这些都不需要任何的显示转换。




1.函数:
def buildConnectionString(params):
    """Build a connection string from a dictionary of parameters.


    Returns string."""
    return ";".join(["%s=%s" % (k, v) for k, v in params.items()])


if __name__ == "__main__":
    myParams = {"server":"mpilgrim", \
                "database":"master", \
                "uid":"sa", \
                "pwd":"secret" \
                }
    print buildConnectionString(myParams)


函数申明:
def function(params)
函数可以不用指定返回类型,参数也不需要指定类型


doc string:
"""Build a connection string from a dictionary of parameters.


    Returns string."""
三重引号表示一个多行字符串。在开始与结束引号间的所有东西都被视为单个字符串的一部分, 包括硬回车和其它的引号字符。

2.内置数据类型
(1)Dictionary
Dictionary 的定义:d = {"server":"mpilgrim", "database":"master"}
Dictionary 的修改:d["database"] = "pubs"
Dictionary 的添加:d["uid"] = "sa"
dictionary 可以混用数据类型:d["retrycount"] = 3,d[42] = "douglas" 
从 dictionary 中删除元素:del d[42]


(2)List
List 的定义:li = ["a", "b", "mpilgrim", "z", "example"] 
li[-1]代表最后一个元素
list 的分片(slice):li[m:n] 从li[m]到li[n],包括li[m],不包括li[n],m默认是0,n默认是尾
extend (扩展) 与 append (追加)的差别  
li.extend(['d', 'e', 'f'])  连接两个List
li.append(['d', 'e', 'f'])  将append中的数据作为一个整体添加到li的尾部,此例就是将List['d', 'e', 'f']作为一个元素添加至li
在 list 中搜索:li.index("a") 找到就返回li的索引,没找到就会产生异常,在不知道元素是否存在的情况下最好使用 “c” in li ,找到就返回True,没有就是False
从 list 中删除元素:li.remove("z"),元素存在就会删除,只会删除首次找到的,没有就会产生异常,,使用pop(),删除最后一个元素并返回删除的元素值
List 运算符:Lists 也可以用 + 运算符连接起来。 list = list + otherlist 相当于 list.extend(otherlist)。 但 + 运算符把一个新 (连接后) 的 list 作为值返回, 而 extend 只修改存在的 list。 也就是说, 对于大型 list 来说, extend 的执行速度要快一些。
Python 支持 += 运算符。 li += ['two'] 等同于 li.extend(['two'])。 += 运算符可用于 list, 字符串和整数, 并且它也可以被重载用于用户自定义的类中
运算符可以作为一个重复器作用于 list。 li = [1, 2] * 3 等同于 li = [1, 2] + [1, 2] + [1, 2], 即将三个 list 连接成一个。


(3)Tuple
Tuple 是不可变 list。 一旦创建了一个 tuple 就不能以任何方式改变它。定义 tuple 与定义 list 的方式相同, 除了整个元素集是用小括号包围的而不是方括号。Tuple 没有方法。
Tuple 比 list 操作速度快。如果您定义了一个值的常量集, 并且唯一要用它做的是不断地遍历它, 请使用 tuple 代替 list。
如果对不需要修改的数据进行 “写保护”, 可以使代码更安全。使用 tuple 而不是 list 如同拥有一个隐含的 assert 语句, 说明这一数据是常量。如果必须要改变这些值, 则需要执行 tuple 到 list 的转换 (需要使用一个特殊的函数)。
还记得我说过 dictionary keys 可以是字符串, 整数和 “其它几种类型”吗? Tuples 就是这些类型之一。 Tuples 可以在 dictionary 中被用做 key, 但是 list 不行。实际上, 事情要比这更复杂。Dictionary key 必须是不可变的。Tuple 本身是不可改变的, 但是如果您有一个 list 的 tuple, 那就认为是可变的了, 用做 dictionary key 就是不安全的。只有字符串, 整数或其它对 dictionary 安全的 tuple 才可以用作 dictionary key。
Tuples 可以用在字符串格式化中,
0 0
原创粉丝点击