Python学习入门基础及笔记

1、python快速入门资料推荐

学习python入门看视频太费时间,推荐以下知识来学习,快速学习入门

快速学习 地址https://www.imooc.com/learn/177

 

2、入门资料的笔记

若是觉得资料太长,可以直接看笔记,可以用来复习

数据类型:

整数:整数运算,结果为整数。A/B整数,A%B余数,0x前缀表16进制

浮点数:包含浮点数的运算,结果为浮点数。1.23*10^9=1.23e9;0.000012=1.2e-5

字符串:'',""内部的文本;'',""符号本身不包含在字符串内,文本包含'',""的要另外用引号

布尔值:True,False,首字母大写。and,or,not布尔运算,运算内容用括号或空格。布尔值和其他类型数据运算时,True相当于1,False相当于0

空值:None,即空,不同于0

=为赋值符号,等号为==

 

print语句可以向屏幕上输出指定的文字,也可以跟上多个字符串,用逗号","隔开,就可以连成一串输出,遇到逗号,会输出一个空格。

 

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

在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,例如:

a = 123 # a是整数 print a a = 'imooc' # a变为字符串 print a

这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。

 

 

字符串;字符串可以用''或者""括起来表示。如果字符串既包含'又包含"怎么办?

这个时候,就需要对字符串的某些特殊字符进行“转义”,Python字符串用\进行转义

 

常用的转义字符还有:

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

 

 

如果要表示多行字符串,可以用'''...'''表示:

'''Line 1 Line 2 Line 3'''

上面这个字符串的表示方法和下面的是完全一样的:

'Line 1\nLine 2\nLine 3'

 

 

Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数,但是整数和浮点数混合运算的结果就变成浮点数了:

在Python中,布尔类型还可以与其他数据类型做 and、or和not运算,请看下面的代码:

a = True print a and 'a=T' or 'a=F'

计算结果不是布尔类型,而是字符串 'a=T',这是为什么呢?

因为Python把0、空字符串''和None看成 False,其他数值和非空字符串都看成 True,所以:

True and 'a=T' 计算结果是 'a=T' 继续计算 'a=T' or 'a=F' 计算结果还是 'a=T'

要解释上述结果,又涉及到 and 和 or 运算的一条重要法则:短路计算。

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

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

所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

list

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素

由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据:

Python按照索引访问list,索引从0开始,第一个元素的素银是0,最后一个索引从-1开始,千万·不要越界

 

python之倒序访问list:

通过 -1 这个索引来表示最后一个元素,倒数第二个用 -2这个索引。

 

list中,添加新元素:

1、L.append() 把新新元素追加到 list 的末尾;

2、L.insert( )接受两个参数,第一个是索引号,第二个是新元素;

 

Python从list删除元素:

用list的pop()方法删除;pop()方法总是删掉list的最后一个元素,并且他还返回这个元素。

 

Python中替换元素:对list中的某个索引赋值,就可以直接用新的元素替换掉原来的元素,list包含的元素个数保持不变。

tuple

tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。

同样是表示班里同学的名称,用tuple表示如下:

>>> t = ('Adam', 'Lisa', 'Bart')

创建tuple和创建list唯一不同之处是用( )替代了[ ]。

单元素tuple要多加一个逗号",",避免与运算时的优先级产生歧义。多元素tuple加不加效果都一样

Python之if语句

注意: Python代码的缩进规则。具有相同缩进的代码被视为代码块,上面的3,4行 print 语句就构成一个代码块(但不包括第5行的print)。如果 if 语句判断为 True,就会执行这个代码块。缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。

注意: if 语句后接表达式,然后用:表示代码块开始。

如果你在Python交互环境下敲代码,还要特别留意缩进,并且退出缩进需要多敲一行回车:

注意: if 语句后接表达式,然后用:表示代码块开始

 

 

 if ... else ... 语句,我们可以根据条件表达式的值为 True 或者 False ,分别执行 if 代码块或者 else 代码块。

注意: else 后面有个“:”。

 

python之if-elif-else:

为了避免嵌套结构的if....else...,我们可以用

if....多个elif...else..的结构

elif意思就是else if

特别注意这一系列判断会从上到下依次判断,如果某个判断为true,执行完对应的代码块,后面的条件判断就直接忽略,不再执行。

 

python之for循环:

格式:for 变量名a  in list  :

                 print a 

name这个变量是在for循环中定义的,意思是,依次取出list中的每一个元素,并把元素赋值给a,然后在执行for循环体(就是缩进的代码块)

还可以这样:

for x in range(1,10): #代表遍历从1到10范围,range(1,10)可以把他看做一个有一到十的数据的list

Python之 while循环

和 for 循环不同的另一种循环是 while 循环,while 循环不会迭代 list 或 tuple 的元素,而是根据表达式判断循环是否结束。

break

用 for 循环或者 while 循环时,如果要在循环体内直接退出循环,可以使用 break 语句。

比如计算1至100的整数和,我们用while来实现:

sum = 0
x = 1
while True:
    sum = sum + x
    x = x + 1
    if x > 100:
        break
print sum

 

Python之 continue继续循环

在循环过程中,可以用break退出当前循环,还可以用continue跳过后续循环代码,继续下一次循环。

对已有的计算 0 - 100 的while循环进行改造,通过增加 continue 语句,使得只计算奇数的和:

python之什么是dict

 

花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略。

代码如下:

 

可以简单地使用 d[key] 的形式来查找对应的 value,这和 list 很像,不同之处是,list 必须使用索引返回对应的元素,而dict使用key:

由于dict是按 key 查找,所以,在一个dict中,key不能重复。

dict的第二个特点就是存储的key-value序对是没有顺序的!这和list不一样:打印的顺序不一定是我们创建时的顺序,而且,不同的机器打印的顺序都可能不同,这说明dict内部是无序的,不能用dict存储有序的集合。

dict的第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key。

直接使用for循环可以遍历 dict 的 key:

>>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
>>> for key in d:
...     print key
... 
Lisa
Adam
Bart

由于通过 key 可以获取对应的 value,因此,在循环体内,可以获取到value的值。

set

set持有一系列的元素,和list很像,但是set元素没有重复的,而且是无序的

创建set的方式是调用set()并传入一个list,list找那个的元素将做为set的元素

s = (['a','b','c'])

print s  #打印出来顺序可能不一样

len(s)     长度函数

 

创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素:

>>> s = set(['A', 'B', 'C']) #代码实例

 

由于set存储的是无序集合,所以我们没法通过索引来访问。

访问 set中的某个元素实际上就是判断一个元素是否在set中。

 

set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。

set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中的。

最后,set存储的元素也是没有顺序的。

 

Python之 遍历set

由于 set 也是一个集合,所以,遍历 set 和遍历 list 类似,都可以通过 for 循环实现。

Python之 更新set

由于set存储的是一组不重复的无序元素,因此,更新set主要做两件事:

一是把新的元素添加到set中,二是把已有元素从set中删除。

添加元素时,用set的add()方法:

>>> s = set([1, 2, 3])
>>> s.add(4)
>>> print s
set([1, 2, 3, 4])

 

删除set中的元素时,用set的remove()方法:

>>> s = set([1, 2, 3, 4])
>>> s.remove(4)
>>> print s
set([1, 2, 3])

Python之编写函数

在Python中,定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。

# math包提供了sin()和 cos()函数,我们先用import引用它:

 

多个返回值时,用print打印返回结果,原来返回值是一个tuple!

但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。

函数默认参数

函数的默认参数的作用是简化调用,你只需要把必须的参数传进去。但是在需要的时候,又可以传入额外的参数来覆盖默认参数值。

由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面:

Python之定义可变参数

如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数:

def fn(*args): print args

可变参数的名字前面有个 * 号,我们可以传入0个、1个或多个参数给可变参数:

可变参数也不是很神秘,Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args 看成一个 tuple 就好了。

对list进行切

L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素。

L[a:b:c] 表示从索引a开始直到索引b截止,不包括索引b,并且没隔c个取一个值。如果第一个索引是0,还可以省略:

 

对于list,既然Python支持L[-1]取倒数第一个元素,那么它同样支持倒数切片,记住倒数第一个元素的索引是-1。倒序切片包含起始索引,不包含结束索引。

字符串也可以用切片操作,只是操作结果仍是字符串:字符串有个方法 upper() 可以把字符变成大写字母:

 

什么是迭代

在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration)。

在Python中,迭代是通过 for ... in 来完成的,而很多语言比如C或者Java,迭代list是通过下标完成的

索引迭代

对于有序集合,元素确实是有索引的。有的时候,我们确实想在 for 循环中拿到索引,怎么办?

方法是使用 enumerate() 函数:

迭代dict的value

我们已经了解了dict对象本身就是可迭代对象,用 for 循环直接迭代 dict,可以每次拿到dict的一个key。

如果我们希望迭代 dict 对象的value,应该怎么做?

dict 对象有一个 values() 方法,这个方法把dict转换成一个包含所有value的list,这样,我们迭代的就是 dict的每一个 value:例子如下:

dict除了values()方法外,还有一个 itervalues() 方法,用 itervalues() 方法替代 values() 方法,迭代效果完全一样:

那这两个方法有何不同之处呢?

1. values() 方法实际上把一个 dict 转换成了包含 value 的list。

2. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。

3. 打印 itervalues() 发现它返回一个 <dictionary-valueiterator> 对象,这说明在Python中,for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict等,任何可迭代对象都可以作用于for循环,而内部如何迭代我们通常并不用关心。

如果一个对象说自己可迭代,那我们就直接用 for 循环去迭代它,可见,迭代是一种抽象的数据操作,它不对迭代对象内部的数据有任何要求。

迭代dict的key和value

我们了解了如何迭代 dict 的key和value,那么,在一个 for 循环中,能否同时迭代 key和value?答案是肯定的。

items() 方法把dict对象转换成了包含tuple的list,我们对这个list进行迭代,可以同时获得key和value:

>>> for key, value in d.items():
...     print key, ':', value
... 
Lisa : 85
Adam : 95
Bart : 59

和 values() 有一个 itervalues() 类似, items() 也有一个对应的 iteritems(),iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存。

生成列表

>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

这种写法就是Python特有的列表生成式。利用列表生成式,可以以非常简洁的代码生成 list。

写列表生成式时,把要生成的元素 x * x 放到前面,后面跟 for 循环,就可以把list创建出来,十分有用,多写几次,很快就可以熟悉这种语法。

列表生成式的 for 循环后面还可以加上 if 判断

 

多层表达式:for循环可以嵌套,因此,在列表生成式中,也可以用多层 for 循环来生成列表。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值