python基础学习

来源:互联网 发布:花呗怎么在淘宝买东西 编辑:程序博客网 时间:2024/05/20 13:06

/在PYTHON中最基本的数据结构是序列。序列中的每个元素被分配一个序号——即元素的位置,也称为索引。其中有6种内建的序列:列表、元组、字符串、Unicode字符串、buffer对象和xrange对象。

列表和元组:列表可以修改,元组则不能修改。

一般情况下所有的列表都可以代替元组,但是当元组作为字典的键这种情况下是不能使用列表的。(什么叫键呢?)

>>> edward=['edward gumby',42]
>>> john=['john smith',50]
>>> database=[edward,john]
>>> database
[['edward gumby', 42], ['john smith', 50]]
以上作废太难懂了/

我们可以通过help(函数名)来查看帮助文档

系统函数库、OS库、webbrowser库、网络编程库、第三方提供的库

数:整数、长整数、浮点数和复数

1.字符串:

单引号‘’所有的空白保留;双引号”“:当字符串内部含有单引号的时候必须使用双引号;三引号:可以在引号内部任意使用双引号和单引号;转义字符(\):当字符串内部包括单引号、双引号或者\的时候可以在符号后面加\作为转义字符。

"This is the first sentence.\行末表示不是开始新的一行,而是表示连续
This is the second sentence."
等价于"This is the first sentence. This is the second sentence."

(1)自然字符串R或r(2)Unicode字符串加U(3)字符串是不可变得(4)按字面意义级联字符串

print('What\'s'' your name?')
What's your name?

2.变量

Python中的变量与以前开发语言接触的变量有所不同,它实际上是改变了自身的指向(与指针类似)

3.标识符的命名

变量是标识符的例子

标识符首位必须是字母或者“_”,区分大小写

4.数据类型

数和字符串,当然也可以通过类来创建自身的类型

5.对象

给变量赋值不需要指定数据的类型

6.逻辑行与物理行

s = 'This is a string. \
This continues the string.'(物理行中使用“\”使两个物理行成为一个逻辑行)

7.缩进(TAB)在Python中特别重要

8.控制流

if: elif: else: while: else:for (int i = 0; i < 5; i++),那么用Python,你写成for i in range(0,5)  break跳出循环 continue跳出当前循环

9.def 函数名(形参)形参和实参要一一对应,当然也可以没有形参

(1)函数中同样存在局部变量,局部变量值得改变是不会影响全部变量的值,如果要在函数内部声明全局变量需要加global关键字,通过使用赋值运算符(=)讲参数设置为默认参数值def say(message, times = 1):我们可以通过形参的关键字来赋值以实参传递给形参

(2)return return语句用来从一个函数 返回 即跳出函数。我们也可选从函数 返回一个值 。所有的函数都暗含返回值,没有值得返回none

可以使用'''  ..... '''  来注释函数,printMax.__doc__来打印函数的注释(增强程序的可读性)

(3)在函数中改变局部变量的值,对全局变量的语句块是没有影响的,我们可以使用Global在函数内部定义全局变量

(4)print Max(函数名称).__doc__打印max函数内部的字符串

(5)函数库的导入使用import关键字

(6)使用dir()可以查看当前模块的属性列表,当你添加一个变量,属性列表也传递进去了也相应的变量的关键字,当你删除变量的时候你也就不能再使用这个变量了。

10.模块应该被放置在我们输入它的程序的同一个目录中,或者在sys.path所列目录之一。

11.Python中有三种内建的数据结构:列表、元组和字典

(1)列表可以进行添加、删除或是搜索列表中的项目,Python从0开始计数,列表的例子shoplist = ['apple', 'mango', 'carrot', 'banana']

(2)元组的值是不能修改的zoo = ('wolf', 'elephant', 'penguin'),通过索引运算符[]来访问元组里面的元素,同时元组也可以作为一个对象存储在相应的元组当中,它原有的身份是不会改变的

print语句可以使用跟着%符号的项目元组的字符串。定制可以是%s表示字符串或%d表示整数,当只有单个定制的时候,print的末尾就可以不用元组括号,否则就必须使用。

注意在元组中的元组对象如果对整个外层元组进行排序它的内部结构是不会变化的

1个元素的元组必须加(1,)逗号来消除歧义

age = 22
name = 'Swaroop'
print '%s is %d years old' % (name, age)

(3)字典

字典包括键和值,其中键必须是唯一的,字典的表示方式d = {key1 : value1, key2 : value2 },记住字典中的键/值对是没有顺序的,如果想要排序必须在使用之前进行相应的排序。

增加键值ab['Guido'] = 'guido@python.org' 删除键值del ab['Spammer'] ,只需要删除关键字不需要知道它的值是多少,访问使用键值for name, address in ab.items(): 用dict.has_key()来判断键/值是否存在

12.序列

切片操作符让我们能够获取序列的一个切片,即一部分序列。shoplist = ['apple', 'mango', 'carrot', 'banana']

shoplist[0]抓取第一个项目apple,shoplist[3]抓取shoplist序列中的第四个元素banana

shoplist[-1]倒数第一个项目 'banana',shoplist[-2]倒数第二个项目 'carrot'

shoplist[0:3]抓取第一个项目到第四个项目

shoplist[1:-1]抓取第二个项目到倒数第一个项目 'mango', 'carrot'即等于[1:shoplist.len-1]

shoplist[1:]mango', 'carrot', 'banana'

13.引用和对象

当你创建一个对象并给它赋一个变量的时候,这个变量仅仅引用那个对象,而不是表示对象的本身!

记住列表的赋值语句不创建拷贝。你得使用切片操作符[:]来建立序列的拷贝。

我们看到使用了许多字符串方法。startwith方法是用来测试字符串是否以给定字符串开
始。in操作符用来检验一个给定字符串是否为另一个字符串的一部分。
find方法用来找出给定字符串在另一个字符串中的位置,或者返回-1以表示找不到子字符串。
str类也有以一个作为分隔符的字符串join序列的项目的整洁的方法,它返回一个生成的大字符
串。

14.类与对象的方法

(1)运用函数和语句块编程是面向过程,还有一种把数据和功能结合起来,用称为对象的东西包裹起来组织程序

的方法叫做面向对象。对象或类的变量称为域,对象也可以使用属于类的函数来具有功能。函数就叫做方法。

利用class关键字: 创建类 实例化一个对象 p=类关键字()

class Person:
def sayHi(self):
print 'Hello, how are you?'
p = Person()
p.sayHi()

(2)域有两种:属于每个实例/类的对象或属于类本身。实例变量和类变量,两种类型的 域 ——类的变量和对象的变量,它们根据是类还是对象 拥有这个变量而区分

我们看到了self的用法。注意sayHi方法没有任何参数,但仍然在函数定义时有self。self的作用与c#中的this指针类似

__init__方法在类的一个对象被建立时,马上运行。这个方法可以用来对你的对象做一些你希望的 初始化 。

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

15.继承

就是把共有的属性提出来给基本类存放,给子类使用

16.try—except来处理异常try..finally 

17.通过列表综合,可以从一个已有的列表导出一个新的列表。例如,你有一个数的列表,而你想
要得到一个对应的列表,使其中所有大于2的数都是原来的2倍。对于这种应用,列表综合是最
理想的方法。

18.exec语句用来执行储存在字符串或文件中的Python语句。assert语句用来声明某个条件是真的。例如,如果你非常确信某个你使用的列表中至少有一个
元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么assert语句是应用在这种情形下的理想语句。当assert语句失败的时候,会引发一个AssertionError。

19.str()一般是将数值转成字符串。 
repr()是将一个对象转成字符串显示,注意只是显示用,有些对象转成字符串没有直接的意思。如list,dict使用str()是无效的,但使用repr可以,这是为了看它们都有哪些值,为了显示之用。反引号也能实现同样的效果。

20.import cPickle as p 为了在文件里储存一个对象,首先以写模式打开一个file对象,然后调用储存器模块的dump函数,把对象储存到打开的文件中。这个过程称为 储存 。我们使用pickle模块的load函数的返回来取回对象。这个过程称为取储存 。

21.列表综合,可以从一个已有的列表导出一个新的列表

22.在函数中接收元组和字典形式的参数的时候,它分别使用*和**前缀。这种方法在函数需要获取可变数量的参数的时候特别有用。由于在args变量前有*前缀,所有多余的函数参数都会作为一个元组存储在args中。如果使用的是**前缀,多余的参数则会被认为是一个字典的键/值对。

23.exec语句用来执行储存在字符串或文件中的Python语句exec 'print "Hello World"'
Hello World,eval语句用来计算存储在字符串中的有效Python表达式eval('2*3')。

24. lambda语句被用来创建新的函数对象,并且在运行时返回它们。

return lambda s: 

          s*n


1 0
原创粉丝点击