python学习(2)基本语法

简介:

——Python的设计哲学是“优雅”、“明确”、“简单”

推荐的IDEpycharm        python版本2.7

 

1.数据类型:

1整数、浮点数C++一样,其运算也是一样。

2字符串“”’’括起来的文本,对特殊字符,可以用 \ 进行转义。可以用 r'...' r'''...'''转义多个特殊字符,后者对段落有效。以Unicode表示的字符串用 u'...' 表示,不加u中文不能正常显示。同样有u'''...''',甚至组合为ur'''...'''

 

可以在第一行添加注释 

# -*- coding: utf-8 -*-

目的是告诉Python解释器,用UTF-8编码读取源代码。

 

3布尔值:用TrueFalse表示(注意大小写),可以用andornot运算。

 

Python0、空字符串''None看成 False,其他数值和非空字符串都看成 True

 

(4)空值None

(5)List一种有序的集合,可以随时添加和删除其中的元素。构造很简单,直接用 [ ] 就可以了,里面的元素也不要求类型相同,超级自由的,像这样:

 my_list = ['you', True, 233]

或是这样

 empty_list = []

我们可以直接用print就把整个list打印出来,超级方便!

而且还可以用下标访问,跟数组一样:L[1],倒序访问也可以!!!L[-1]我的天呐!

插入:有两种方法:L.append(元素)追加元素到末尾,L.insert(0,元素)插入元素到0位置,其他元素顺势往后移。

删除:L.pop(),删掉最后一个,L.pop(2)删掉位置2的元素。

替换:L[0]=元素,直接替换0位置的元素。

(6)tuple(元组):一旦创建就不能修改。创建方式是这样的:

t = ('元素1', '元素2', '元素3') 或是 t=(元素,)——单元素tuple需要避免歧义。

tuple里面嵌套list也是可以的:

t = ('a', 'b', ['A', 'B'])

7dict表示映射关系的字典,用 {} 表示,花括号里是keyvalue这样的对应关系。

lend)可以用来求字典的大小。要注意key是不可变得类型,如字符串、整数、浮点数。

访问dict里面的元素:d[key],但要知道这个key值是否存在,避免发生错误。判断方法如下:

1. if key in d:

2. d.get(key),存在返回value,不存在返回None

d[key]=value语句可以用于添加新的映射,也可以用于修改原来的映射。

(8)setset里面的元素不会有重复,而且是无序的。创建 set 的方式是调用 set() 并传入一个 listlist的元素将作为set的元素。

 s = set(['元素1', '元素2', '元素3'])

in操作符判断一个元素是否在set中。

s.add(元素)s.remove(元素)可以用于在set中添加和删除元素。删除时需注意判断元素是否在set中,否则会报错。

 

 

2.变量:

变量的命名规则:大小写英文、数字和下划线(_)的组合,且不能用数字开头。

python是动态语言,变量本身的类型是不固定的!

 

3.输出:

print语句,可以连多个字符串,用“”隔开,在输出中会显示为空格

 

4.注释:

以 开头,至行尾都是注释

 

 

5.条件判断与循环:

Python代码的缩进规则:具有相同缩进的代码被视为代码块。缩进据说用4个空格比较好。

 

1if语句:

if+表达式+

 

(2)if-else语句:

if+表达式+

else

 

(3)if-elif-else语句:

if+表达式+

elif+表达式+

else

 

(4)for循环:

可以用来遍历listtupledictset里的元素:

L = ['Adam', 'Lisa', 'Bart']

for name in L:

    print name

 

5while循环:

While+表达式+

 

(6)break跳出循环:

再循环中可以使用break跳出循环。

 

(7)continue跳出本次循环,继续以后的循环:

 

 

6.函数

调用:方法和C++一样,像:abs(-1)cmp(x,y)int(123)str(123)。(后两个为类型转换),zip()函数可以把两个list变成一个list

>>> zip([10, 20, 30], ['A', 'B', 'C'])

[(10, 'A'), (20, 'B'), (30, 'C')]

编写:用def语句,后接函数名、括号、参数和冒号,再编写函数体,里面可以包含return语句,当然也可以没有,这时会返回None

注意python的函数是可以返回多个值的,实际上这里返回的是一个tuple。像下面这段代码:

import math

def move(x, y, step, angle):

    nx = x + step * math.cos(angle)

    ny = y - step * math.sin(angle)

    return nx, ny

递归函数默认参数C++的差不多。

可变参数:参数名前面加一个*,就可以传入0个、1个或多个参数。其实这里也是一个tuple。看下面求平均值的一段代码:

def average(*args):

    ave=0.0

    ji=0.0

    for i in args:

        ji=ji+1

        ave+=i

    if ji!=0:

        ave=ave/ji    

    return ave  

 

print average()

print average(1, 2)

print average(1, 2, 2, 3, 4)

关键字参数:允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

def person(name, age, **kw):

print 'name:', name, 'age:', age, 'other:', kw

>>> person(Mike, 20)

name: Mike age: 20 other: {}

>>> person('Sam', 15, city=Guangdong)

name: Sam age: 15 other: {'city': Guangdong}

>>> person(Allen, 45, gender='M', job='Player')

name: Allen age: 45 other: {'gender': 'M', 'job': Player}

 

7.切片(Slice

,可以对listtuple甚至字符串进行切片,看下面几个例子就明白了:

L[0:3]:表示从0开始的3个元素

L[:3]:表示从0开始的3个元素

L[:]:表示从头到尾

L[::2]:第三个参数表示每两个元素取一个

倒序也是可以的!L[-2:]:表示从倒数第二个到末尾的元素

 

8.特殊的遍历

1enumerate() 函数,可以在循环中同时绑定元素下标和元素,实际上是把元素下标和元素组成tuple中的映射。

看下面代码:

>>> L = ['A', 'B', 'C', 'D']

>>> for index, name in enumerate(L):

...     print index, '-', name

... 

0 - A

1 - B

2 - C

3 - D

(2)dict的遍历:

1.直接遍历时遍历的是dictkey,像下面的代码:

for key in d:

print key+':',d[key]

2.若想要遍历value,方法有两种:

一种是用values()方法:

for v in d.values():

print v

另一种是用 itervalues() 方法(更省内存):

for v in d.itervalues():

print v

3.同时遍历,我们有时需要同时遍历dictkeyvalue,我们有items()方法和iteritems()方法,后者不占用额外的内存。看下面的代码:

>>> for key, value in d.items():

   print key, ':', value

 

 

9.生成列表

列表生成式可以用简洁的代码生成list。代码例子像下面这样:

>>> [x * x for x in range(1, 11) if x % 2 == 0]

[4, 16, 36, 64, 100]

当然多层嵌套也是可以的:

>>> [m + n for m in 'ABC' for n in '123']

['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']

 

10.生成器

当然有些时候我们只需要按一定规则生成的元素,而不需要把所有元素列出一个list。这个时候我们就可以用生成器(generator

我们用 () 创建,像这样: g = (x * x for x in range(10)),我们可以一直用next()方法调用生成的元素,当然用一个for循环会显得理智得多。

当函数返回结果用yield语句时,它其实也是一个生成器。


写文章的时候刚刚接到消息,小李子拿奥斯卡了,嗷嗷~,小李子你不是一个人在拿奖


目录
打赏
0
0
0
0
3
分享
相关文章
Python学习的自我理解和想法(27)
本文记录了学习Python第27天的内容,主要介绍了使用Python操作PPTX和PDF的技巧。其中包括通过`python-pptx`库创建PPTX文件的详细步骤,如创建幻灯片对象、选择母版布局、编辑标题与副标题、添加文本框和图片,以及保存文件。此外,还讲解了如何利用`PyPDF2`库为PDF文件加密,涵盖安装库、定义函数、读取文件、设置密码及保存加密文件的过程。文章总结了Python在处理文档时的强大功能,并表达了对读者应用这些技能的期待。
抖音直播间采集提取工具,直播间匿名截流获客软件,Python开发【仅供学习】
这是一套基于Python开发的抖音直播间数据采集与分析系统,包含观众信息获取、弹幕监控及数据存储等功能。代码采用requests、websockets和sqlite3等...
Python学习的自我理解和想法(28)
本文记录了学习Python第28天的内容——冒泡排序。通过B站千锋教育课程学习,非原创代码。文章详细介绍了冒泡排序的起源、概念、工作原理及多种Python实现方式(普通版、进阶版1和进阶版2)。同时分析了其时间复杂度(最坏、最好、平均情况)与空间复杂度,并探讨了实际应用场景(如小规模数据排序、教学示例)及局限性(如效率低下、不适用于高实时性场景)。最后总结了冒泡排序的意义及其对初学者的重要性。
Python学习的自我理解和想法(26)
这是一篇关于使用Python操作Word文档的学习总结,基于B站千锋教育课程内容编写。主要介绍了通过`python-docx`库在Word中插入列表(有序与无序)、表格,以及读取docx文件的方法。详细展示了代码示例与结果,涵盖创建文档对象、添加数据、设置样式、保存文件等步骤。虽为开学后时间有限下的简要记录,但仍清晰梳理了核心知识点,有助于初学者掌握自动化办公技巧。不足之处欢迎指正!
Python学习的自我理解和想法(22)
本文记录了作者学习Python第22天的内容——正则表达式,基于B站千锋教育课程。文章简要介绍了正则表达式的概念、特点及使用场景(如爬虫、数据清洗等),并通过示例解析了`re.search()`、`re.match()`、拆分、替换和匹配中文等基本语法。正则表达式是文本处理的重要工具,尽管入门较难,但功能强大。作者表示后续会深入讲解其应用,并强调学好正则对爬虫学习的帮助。因时间有限,内容为入门概述,不足之处敬请谅解。
Python学习的自我理解和想法(20)
这是我在B站千锋教育课程中学习Python第20天的总结,主要涉及面向对象编程的核心概念。内容包括:私有属性与私有方法的定义、语法及调用方式;多态的含义与实现,强调父类引用指向子类对象的特点;单例设计模式的定义、应用场景及实现步骤。通过学习,我掌握了如何在类中保护数据(私有化)、实现灵活的方法重写(多态)以及确保单一实例(单例模式)。由于开学时间有限,内容简明扼要,如有不足之处,欢迎指正!
Python学习的自我理解和想法(24)
本文记录了学习Python操作Excel的第24天内容,基于B站千锋教育课程。主要介绍openpyxl插件的使用,包括安装、读取与写入Excel文件、插入图表等操作。具体内容涵盖加载工作簿、获取单元格数据、创建和保存工作表,以及通过图表展示数据。因开学时间有限,文章简要概述了各步骤代码实现,适合初学者参考学习。如有不足之处,欢迎指正!
Python学习的自我理解和想法(25)
这是一篇关于Python操作Word文档(docx)的教程总结,基于B站千锋教育课程学习(非原创代码)。主要内容包括:1) docx库插件安装;2) 创建与编辑Word文档,如添加标题、段落、设置字体样式及保存;3) 向新或现有Word文档插入图片。通过简单示例展示了如何高效使用python-docx库完成文档操作。因开学时间有限,内容精简,后续将更新列表和表格相关内容。欢迎指正交流!
Python学习的自我理解和想法(23)
本文记录了学习Python正则表达式的第23天心得,内容基于B站麦叔课程。文章分为三个部分:1) 正则表达式的七个境界,从固定字符串到内部约束逐步深入;2) 写正则表达式的套路,以座机号码为例解析模式设计;3) 正则表达式语法大全,涵盖字符类别、重复次数、组合模式、位置、分组、标记、特殊字符和替换等知识点。总结中表达了对知识的理解,并欢迎指正。
Python学习的自我理解和想法(21)
这是一篇关于Python文件操作的学习总结,基于B站千锋教育课程内容整理而成。文章详细介绍了文件操作的基础知识,包括参数(路径、模式、编码)、注意事项(编码一致性、文件关闭)以及具体操作(创建、读取、写入文件)。同时,深入解析了路径的概念,区分绝对路径与相对路径,并通过示例演示两者在实际应用中的差异。此外,还强调了不同模式(如"w"覆盖写入和"a"追加写入)对文件内容的影响。整体内容逻辑清晰,适合初学者掌握Python文件操作的核心技巧。

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等