Python基础(一)

声明,一下都是我根据网站自学所记录的一点笔记,主要内容引入自下面的网站

[慕课网-廖雪峰-Python入门]
(http://www.imooc.com/learn/177)

3章 Python变量和数据类型

数据类型

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
print语句也可以跟上多个字符串,用逗号“,”隔开,就可以连成一串输出:

>>>print 'The quick brown fox', 'jumps over', 'the lazy dog'
            The quick brown fox jumps over the lazy dog

变量

在Python程序中,变量是用一个变量名表示 变量名必须是大小写英文、数字和下划线(_)的组合,且不能用数字开头

变量赋值

a = 'ABC'
b = a
a = 'XYZ'
print b
#b=?

执行a = 'ABC',解释器创建了字符串 'ABC'和变量 a,并把a指向 'ABC':

执行b = a解释器创建了变量 b,并把b指向 a 指向的字符串'ABC':

执行a = 'XYZ',解释器创建了字符串'XYZ',并把a的指向改为'XYZ',但b并没有更改:

例题:1到100和(封装函数的思想)

def cal(n):
    x = 1
    d = 3
    s = 1
    for i in range(1,n):
         x = x + d
         s = x + s
    print s

cal(100)

定义字符串

如果字符串既包含'又包含"怎么办?这个时候,就需要对字符串的某些特殊字符进行“转义”,Python字符串用\进行转义。
要表示字符串 Bob said "I'm OK".
由于 ' 和 " 会引起歧义,因此,我们在它前面插入一个\表示这是一个普通字符,不代表字符串的起始,因此,这个字符串又可以表示为

'Bob said \"I\'m OK\".'

注意:转义字符 \ 不计入字符串的内容中。
常用转义字符有

\n 表示换行
\t 表示一个制表符
\\ 表示 \ 字符本身

请把下面的字符串用r'''...'''的形式改写,并用print打印出来:
'"To be, or not to be": that is the question.\nWhether it's nobler in the mind to suffer.'

print r'''"To be, or not to be": that is the question.
Whether it's nobler in the mind to suffer.'''

Unicode字符串

# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

print u'''静夜思
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
'''

布尔类型

and 和 or 运算的一条重要法则:短路计算。

True and 'a=T' 计算结果是 'a=T'
继续计算 'a=T' or 'a=F' 计算结果还是 'a=T'
  1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

  2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

4章 List和Tuple类型

list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据。

append()总是把新的元素添加到 list 的尾部。
list的 insert()方法,它接受两个参数,第一个参数是索引号,第二个参数是待添加的新元素
pop()方法总是删掉list的最后一个元素,并且它还返回这个元素,所以我们执行 L.pop() 后,会打印出 'Paul'。

python中可以直接替换:

L = ['Adam', 'Lisa', 'Bart']
L[0],L[-1]=L[-1],L[0]
print L
tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。

Python 规定,单元素 tuple 要多加一个逗号“,”,这样就避免了歧义:

>>> t = (1,)
>>> print t
(1,)

重点

“可变”的tuple

>>> t = ('a', 'b', ['A', 'B'])
>>> L = t[2]
>>> L[0] = 'X'
>>> L[1] = 'Y'
>>> print t
('a', 'b', ['X', 'Y'])

如下图所示

表面上看,tuple的元素确实变了,但其实变的不是 tuple 的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。

posted @ 2018-04-22 21:44  ulrica骞  阅读(249)  评论(1编辑  收藏  举报