Python简明教程学习笔记

1.使用三引号('''或""")

利用三引号,你可以指示一个多行的字符串。你可以在三引号中自由的使用单引号和双引号。例如:

str='''This is a multi-line string. This is the first line.
This is the second line.
"What's your name?," I asked.
He said "Bond, James Bond."
'''

2.自然字符串

如果你想要指示某些不需要如转义符那样的特别处理的字符串(转义符号无效),那么你需要指定一个自然字符串。自然字符串通过给字符串加上前缀rR来指定。例如 str=r"Newlines are indicated by \n"

print(str)结果为:Newlines are indicated by \n。

一定要用自然字符串处理正则表达式。否则会需要使用很多的反斜杠。例如,后向引用符可以写成'\\1'或r'\1'。

3.字符串是不可变的

这意味着一旦你创造了一个字符串,你就不能再改变它了。

4.按字面意义级连字符串

如果你把两个字符串按字面意义相邻放着,他们会被Python自动级连。例如,'What\'s' '   your name?'会被自动转为"What's    your name?"

5.对象

就每一个东西包括数、字符串甚至函数都是对象这一点来说,Python是极其完全地面向对象的。

6.变量

使用变量时只需要给它们赋一个值。不需要声明或定义数据类型。

7.逻辑行和物理行

如果你想要在一个物理行中使用多于一个逻辑行,那么你需要使用分号(;)来特别地标明这种用法。分号表示一个逻辑行/语句的结束。例如:i=5;print(i)

在多个物理行中写一个逻辑行的例子。它被称为明确的行连接

s = 'This is a string. \
This continues the string.'

print(s)

输出结果为:This is a string. This continues the string.

在逻辑行中使用了圆括号、方括号或波形括号的时候,也可以使多个物理行对应一个逻辑行,这被称为暗示的行连接

str=[1,23,"hello"
,"ok"]
print(str)

结果为:[1, 23, 'hello', 'ok']

8.运算符及它们的用法

*两个数相乘或是返回一个被重复若干次的字符串2 * 3得到6。'la' * 3得到'lalala'

/x除以y4/3得到1.333333333333 与C语言不同  4.0/3或4/3.0得到1.3333333333333333
// 取整除返回商的整数部分4 // 3.0得到1.0
% 取模 返回除法的余数8%3得到2。-25.5%2.25得到1.5,可以应用与浮点数

~     按位翻转(包括符号位也翻转)x的按位翻转是-(x+1)~5得到-6

not布尔“非”如果x为True,返回False;如果x为False,它返回True。x = 0; not x返回True


and 布尔“与” 如果x为False,x and y返回False,否则它返回y的计算值。 x = False; y = True; x          and y,由于x是False,返回False。在这里,Python不会计算y,因为它知道这个表达式的值肯定是                False(因为x是False)。这个现象称为短路计算。举例:2 and 4,返回4;0 and 4,返回0。


or 布尔“或” 如果x是True,它返回True,否则它返回y的计算值。 x = True; y = False; x or y返回True。短路计算在这里也适用。举例:1 or 5,返回1;0 or -1,则返回-1.

9.Python的print 格式化输出



python3 实现print不换行:

print("sxh",end="")
print("love")

输出:sxhlove

print("sxh",end="_")
print("love")

输出:sxh_love


10.格式化输出浮点数(float)

import math
#default
print "PI = %f" % math.pi
#width = 10,precise = 3,align = left
print "PI = %10.3f" % math.pi
#width = 10,precise = 3,align = rigth
print "PI = %-10.3f" % math.pi
#前面填充字符
print "PI = %06d" % int(math.pi)
 
#输出结果
#PI = 3.141593
#PI =      3.142
#PI = 3.142
#PI = 000003

11.格式化输出字符串(string)

#precise = 3
print "%.3s " % ("jcodeer")
#precise = 4
print "%.*s" % (4,"jcodeer")
#width = 10,precise = 3
print "%10.3s" % ("jcodeer")
#输出结果:
#jco
#jcod
#       jco

另外:%-10s和%-10f结果是不同的,%-10f是右对齐,而%-10s是左对齐。

      %10s和%10f结果是不同的,%10f是左对齐,而%10s右左对齐。

12.控制流

注意我们使用了缩进层次来告诉Python解释器每个语句分别属于哪一个块。这就是为什么缩进在Python如此重要的原因。

注意if语句在结尾处包含一个冒号——我们通过它告诉Python解释器下面跟着一个语句块

elifelse从句都必须在逻辑行结尾处有一个冒号,下面跟着一个相应的语句块(当然还包括正确的缩进)。

在Python中没有switch语句。你可以使用if..elif..else语句来完成同样的工作(在某些场合,使用字典会更加快捷)。

for循环:记住,else部分是可选的。如果包含else,它总是在for循环结束后执行一次,除非遇到break语句。

一个重要的注释是,如果你从forwhile循环中 终止 ,任何对应的循环else块将执行。

13. global 语句

如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是 全局 的。我们使用global语句完成这一功能。没有global语句,是不可能为定义在函数外的变量赋值的。

你可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。然而,我并不鼓励你这样做,并且你应该尽量避免这样做,因为这使得程序的读者会不清楚这个变量是在哪里定义的。使用global语句可以清楚地表明变量是在外面的块定义的。

下面举几个例子:

def func():
    print("x is %d" %x) #x是全局的变量
x=50
func() 


def func():
    x=2 #x是局部的变量
    print("x is %d" %x)
x=50
func()


def func():
    print("x is %d" %x) #UnboundLocalError: local variable 'x' referenced before assignment
    x=2
    print("changed local x to %d" %x)
x=50
func()


def func():
    global  x
    print("x is %d" %x)
    x=2 #x是全局的x
    print("changed local x to %d" %x)
x=50
func()

14.关键参数

如果你的某个函数有许多参数,而你只想指定其中的一部分,那么你可以通过命名来为这些参数赋值——这被称作 关键参数 ——我们使用名字(关键字)而不是位置(我们前面所一直使用的方法)来给函数指定实参。

这样做有两个优势,由于我们不必担心参数的顺序,使用函数变得更加简单了。二、假设其他参数都有默认值,我们可以只给我们想要的那些参数赋值。

15.模块的__name__

每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。这在一个场合特别有用——就如前面所提到的,当一个模块被第一次输入的时候,这个模块的主块将被运行。假如我们只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块,我们该怎么做呢?这可以通过模块的__name__属性完成。
如果模块本身运行的时候,模块的__name__为__main__;如果模块式被其他模块导入,则被导入模块的__name__位模块的名字。
举例
模块slave.py
if __name__ == '__main__':
    print(__name__)
else:
    print(__name__)

如果直接运行slave.py文件则输出“__main__”,如果是slave模块被其他模块导入,则输出slave。

15.del 变量或者函数或者类

关于del注释——这个语句在运行后被用来 删除 一个变量/函数名称。del 名称;之后,你将无法再使用变量或者函数——它就好像从来没有存在过一样。


16.类与对象的变量

事实上,它们只是与类和对象的名称空间 绑定 的普通变量,即这些名称只在这些类与对象的前提下有效。有两种类型的  ——类的变量和对象的变量,它们根据是类还是对象 拥有 这个变量而区分。

类的变量 由一个类的所有对象(实例)共享使用。只有一个类变量的拷贝,所以当某个对象对类的变量做了改动的时候,这个改动会反映到所有其他的实例上。

对象的变量 由类的每个对象/实例拥有。因此每个对象有自己对这个域的一份拷贝,即它们不是共享的,在同一个类的不同实例中,虽然对象的变量有相同的名称,但是是互不相关的。

self.name的值根据每个对象指定,这表明了它作为对象的变量的本质。

记住,你能使用self变量来参考同一个对象的变量和方法。这被称为 属性参考 。

(类的变量,使用类名和对象名都可访问),对象的属性只能使用对象名和self访问。

就如同__init__方法一样,还有一个特殊的方法__del__,它在对象消逝的时候被调用。对象消逝即对象不再被使用,它所占用的内存将返回给系统作它用。当对象不再被使用时,__del__方法运行,但是很难保证这个方法究竟在 什么时候 运行。如果你想要指明它的运行,你就得使用del语句,就如同我们在以前的例子中使用的那样。

Python中所有的类成员(包括数据成员)都是 公共的 ,所有的方法都是 有效的 。
只有一个例外:如果你使用的数据成员名称以 双下划线前缀 比如__privatevar,Python的名称管理体系会有效地把它作为私有变量。

17.文件

你可以通过创建一个file类的对象来打开一个文件(f = file('poem.txt', 'w') # open for 'w'riting),分别使用file类的readreadlinewrite方法来恰当地读写文件。对文件的读写能力依赖于你在打开文件时指定的模式。最后,当你完成对文件的操作的时候,你调用close方法来告诉Python我们完成了对文件的使用。

我们使用readline方法读文件的每一行。这个方法返回包括行末换行符的一个完整行。所以,当一个 空的 字符串被返回的时候,即表示文件末已经到达了,于是我们停止循环。

注意,因为从文件读到的内容已经以换行符结尾,所以我们在print语句上使用end=''来消除自动换行。最后,我们用close关闭这个文件。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值