遍历python语法

 

 

2.基本元素:数字、字符串和变量

2.1 python有哪些基本类型?
布尔型(True, False),整型(42,100000),浮点型(3.14159,1.0e8),字符串型("string")

2.2 python中所有的数据都是以对象的形式存在。
对象就是数据实体,变量就是名字。对象有类型之分,基本的就以上几种,对象还分常量和变量。

2.3 变量赋值(=)?
赋值不等于复制,变量赋值只是为数据对象取了一个名字,名字是对对象的引用而不是对象本身。
变量名是与实际数据相关联的名字,变量存在的意义就是为了让人方便引用内存中的值,在编译时变量名会被替换为地址。

2.4 如何查看对象的类型?type()语句

2.5 python数字(整数和浮点数)运算?
+、-、*、/(浮点除)、//(整数除)、%(求余)、**(幂)、divmod()

2.6 python中的基数
0b/0B二进制、0o/0O八进制、0x/0X十六进制

2.7 类型转换、长度查看(均为内置函数,不依附于对象,可以直接使用)
int(), float(), str(), bool();len()

2.8 python3从python2中分离出来的原因?
Unicode

2.9 字符串型?
第一个序列类型,本质是字符序列,不可变(同元组,不能直接插入、删除和更改元素)。

2.10 创建字符串?
单引号或双引号创建(交互式解释器输出的字符串永远是单引号包裹的),三连(单双)引号创建多行字符串。

2.11 print函数的输出格式
print会截取最外层的引号,直接输出实际内容;自动在各输出部分之间添加空格;所有输出最后添加换行符。(print输出格式可以设置)

2.12 字符串操作:拼接、复制、提取、单个字符替换
“+”拼接字符串常量和变量;直接先后放置可以拼接字符串常量;“*”可以做字符串乘法,做复制;“[]”可以通过偏移量提取字符,可以从头[0][1][2]提取,也可以从尾部[-1][-2]提取(不能超过最大限制)。“obj.replace('obj', 'c')”可用于替换字符串的单个字符。

2.13 分片操作[start:end:step]
[:]提取整个字符串;[start:]从start到结尾;[:end]从开头到end-1(特别注意);[start:end]从start到end-1;[start:end:step]从start到end-1,每step个字符提取一个。
偏移量0是开头;-1是结尾;step为负就是逆序。

2.14 字符串对象的成员函数:split(),join(),
string.split("string" or 'c')将字符串按分隔符分割为子串的列表[]。
("string" or 'c').join(list)反向操作
string.startwith("string"); string.endwith("string"); string.find("string"); string.rfind("string"); string.count("string"); string.isalnum().
string.strip("."); string.capitalize(); string.title(); string.upper(); string.lower(); string.swapcase(); string.center(30); string.ljust(30); string.rjust(30).

2.15 字符串子串替换:replace()
string.replace("obj", "c", num)函数有三个参数,第三个为最多替换多少处。功能不如正则表达式强大。

 

3.容器:列表、元组、字典与集合

将数据进行拆分和合并,加工为特定形式。
3.1 序列结构 字符串、元组、列表(前两者不可变)(后两者不要求所含元素种类相同)

3.2 创建列表 [] list[] 列表推导式 (列表有序,元素可重复)

3.3 数据结构之间的转换 list(), tuple(), dict(), set()
list()可以将字符串、元组转化为列表,split()可以将字符串分割为列表,join可以将列表形成字符串

3.4 使用[下标]获取列表元素,[0][1][2], [-1][-2][-3];

3.5 列表里面可以包含任意元素,所以列表可以嵌套列表,[[],[],[]],一般嵌套两层就足够了,类似二维数组。

3.6 切片提取元素:[start, end, step]

3.7 列表对象的成员函数:list.append(var)(在末尾添加元素), list.extend(var)(+=)(合并列表), list.insert(num, var)(在指定位置插入元素), list.remove(value)(删除指定值元素), list.pop(1)(获取并删除指定位置元素,其中pop()==pop(-1)), list.index(value)(查询特定值元素的位置), list.count(value)(计算列表中指定值出现的次数), list.sort(reverse=True)(排序列表,列表会改变,可设定排序方向), 

3.8 python语句操作列表:del语句,del list[num]; in语句(判断值是否在列表中), 

3.9 python函数:sorted()排序;len()获取长度;=(赋值);copy()(复制);(赋值才不会偶联,复制有多种方法,list(),切片)

3.10 创建元组:()创建空元组;元组是以逗号创建并标记的,逗号不能省,括号可以;

3.11 可以将元组赋值给多个变量,进行元组解包;

3.12 创建字典:{}创建空字典;添加元素;

3.13 dict()可以将任意双值子序列转化为字典(嵌套);dict.clear()删除所有元素;dict.get(key, return);dict.keys()获取所有键;dict.values()获取所有值;dict.items()获取所有键值对;dict.copy()复制;

3.14 字典成员函数:dict.update(dict)合并字典;

3.15 del删除指定键的元素;in判断键是否存在;

3.16 创建集合:set()创建空集;{1,2,3}创建集合;

3.17 集合运算:交集&;并集|;差集-;异或集^;<=判断是否子集;>=判断是否超级;>判断是否真超集;

3.18 总结:[]创建列表;逗号创建元组;{}创建字典;注意:由于字典的特性,列表、字典、集合都不能作为字典的键;元组可以;还有不可变的常量。

4.Python外壳:代码结构

Python不使用()、{}来划分代码;而是使用:和代码缩进(缩进决定如何配对)来划分代码。
4.1 使用\连接一行代码

4.2 选择结构:if elif else
if exp:
    if exp:
    elif exp:
    else:
else:
    statement

4.3 python可以直接使用比较符号比较字符串,而perl不行。

4.4 布尔操作符and, or, not;

4.5 循环结构:while for
count = 1
while count <= 5:
    print(count)
    count+=1
   
for的牛逼之处在于:在数据结构长度未知,具体实现未知的情况下遍历整个数据结构,核心是in。
for rabbit in rabbits:
    print(rabbit)
对字典的迭代可能需要用到keys(), values(), items()等成员函数。

4.6 python很奇葩,貌似没有自增自减运算符++、—。

4.7 控制循环:break continue

4.8 循环外的else,循环正常结束(从头到尾),没有使用break中断。

4.9 并行迭代:zip(), 正常for in只能对单个数据结构,而zip()则可以同时迭代多对数据结构。zip()也不局限于for中,它可以迭代任何成组数据结构。

4.10 range()生成自然数序列:
range(start, end, step)
zip()、range()返回的都是可迭代对象,可以用于for in遍历,但是要称为数据实体就必须使用list()、tuple()、set()、dict()转化。

4.11 推导式
看似复杂,其实很简单,[]里,前面是表达式,后面是迭代变量,使用for和if确定迭代变量的值。
列表推导式:
a = [str(b)*3 for b in range(1,6) if b % 2 == 0]
cells = [(a, b) for a in list1 for b in list2 if ...]
字典推导式:
counts = {letter:word.count(letter) for letter in word}
集合推导式
a_set = {num for num in range(1,6) if num % 3 == 1}
生成器推导式(元组),返回一个生成器对象,只能运行一次。
num_thing = (num for num in range(1,6))

 

4.12 函数
4.12.1 创建函数的基本格式:
def func1():
    exp
    return var

4.12.2 python函数参数的传递:位置参数、关键字参数、默认参数
位置参数(*):就是C里面最原始的参数传递形式,按顺序传递,必须弄清定义函数的每个位置参数的意义。
关键字参数(**):就是强行指定传递参数,优先级比位置参数低,一般是不记得函数后面几个参数,就强行指定。
默认参数:是在函数定义时,给函数参数定义的默认值。缺省参数。若调用时提供了参数就会覆盖。

4.12.3 传递可变数量的参数(*)(**)
(*)将一组可变数量的位置参数集合成参数值的元组。
(**)将参数收集到一个字典里

4.12.4 文档字符串 函数开始的一段说明和帮助的字符串

4.13 函数的参数可以是任意的对象,也可以是函数,调用方式是一样的。

4.14 内部函数 在函数的内部定义另外一个函数,目的是避免函数内部的重复。

4.15 匿名函数:lambda()
lambda()是用一个语句表达的匿名函数,目的是用来代替小型函数,临时用一次。
edit_story(stairs, lambda word: word.capitalize() + '!')
lambda函数接受一个参数word,冒号后为函数的定义。

4.16 生成器(就是前面的元组的推导式)
为了迭代庞大的数据结构,而不需要创建序列实体,当序列比较大时通常会创建一个生成器函数。(此时不用return,而是用yield)
def my_range(first=0, last=10, step=1):
    number = first
    while number < last:
        yield number
        number += step
此函数返回一个生成器对象,可用于for迭代。

4.17 装饰器
在不改变源代码的情况下修改已经存在的函数;
装饰器就是一个函数,以一个函数为输入,并返回另一个函数。
结合:*arg和**kwargs;闭包;函数作为参数
def document_it(func):
    def new_function(*args, **kwargs):
        print("Running function:", func.__name__)
        print("Positional arguments:", args)
        print("Keyword argument:", kwargs)
        result = func(*args, **kwargs)
        print("Result:", result)
        return result
    return new_function
装饰器,顾名思义,就是装饰一下已有的函数,返回新的函数。
也可以在定义函数前,添加装饰器的名字,如@document_it,之后定义的函数就会默认使用装饰器。
可以有多个装饰器,靠近函数的装饰器会优先执行。

4.18 命名空间和作用域

4.18.1 怎么查看每个对象的唯一ID值? id()语句

4.18.2 怎么在函数内部读取全局变量? global关键字

4.18.3 怎么获取命名空间的内容?
locals()返回局部命名空间内容的字典
globals()返回全局命名空间内容的字典

4.18.4 两个下划线__的是什么?
在函数内部,func.__name__就是该函数的名称;func.__doc__是文档字符串。
主程序的名字就是__main__.

4.19 异常,try和except处理错误
>>> short_list = [1,2,3]
>>> position = 5
>>> try:
    short_list[position]
except:
    print('Need a psotion between 0 and', len(short_list)-1, 'but got', position)
解释:在try中的代码会被执行,如果存在错误,就抛出异常,然后执行except中的代码;否则跳过except代码块。
except exceptiontype as name获取整个异常对象

4.20 自定义异常
需要自定义异常类,可以继承已有的异常类;
使用时,就raise My_Exception(var)就可以了;

补充:None只能用is语句来识别。

Python语言及其应用 - 知识点遍历的更多相关文章

  1. Python语言程序设计(1)--实例1和基本知识点

    记录慕课大学课程<Python语言程序设计>的学习历程. 实例1:温度转换 #温度转换TempStr = input("请输入带有符号的温度值:") #TempStr是 ...

  2. [Python学习笔记1]Python语言基础 数学运算符 字符串 列表

    这个系列是我在学习Python语言的过程中记录的笔记,主要是一些知识点汇总,而非学习教程,可供有一定编程基础者参考.文中偏见和不足难以避免,仅供参考,欢迎批评指正. 本系列笔记主要参考文献是官网文档: ...

  3. 《Selenium2自动化测试实战--基于Python语言》 --即将面市

    发展历程: <selenium_webdriver(python)第一版>   将本博客中的这个系列整理为pdf文档,免费. <selenium_webdriver(python)第 ...

  4. Python语言初学总结

    课程名称:程序设计方法学 实验1:程序设计语言工具 时间:2015年10月21日星期三,第3.4节 地点:理工楼1#208 一.实验目的 1.深入理解程序设计语言及其几种常见的编程范型: 2.激发学生 ...

  5. 动态语言的灵活性是把双刃剑 -- 以Python语言为例

    本文有些零碎,总题来说,包括两个问题:(1)可变对象(最常见的是list dict)被意外修改的问题,(2)对参数(parameter)的检查问题.这两个问题,本质都是因为动态语言(动态类型语言)的特 ...

  6. 机器学习之支持向量机(四):支持向量机的Python语言实现

    注:关于支持向量机系列文章是借鉴大神的神作,加以自己的理解写成的:若对原作者有损请告知,我会及时处理.转载请标明来源. 序: 我在支持向量机系列中主要讲支持向量机的公式推导,第一部分讲到推出拉格朗日对 ...

  7. mooc-python语言语法week3-6

    week3 1.类型的概念:程序编程不允许有歧义的数据类型存在,所以对数据进行了划分,python语言类型分为,数字类型.字符串类型.元组类型.列表类型.文件类型.字典类型. i:数字类型: pyth ...

  8. Python语言学习之C++调用python

    C++调用python 在C/C++中嵌入Python,可以使用Python提供的强大功能,通过嵌入Python可以替代动态链接库形式的接口,这样可以方便地根据需要修改脚本代码,而不用重新编译链接二进 ...

  9. 全国计算机等级考试二级Python语言程序设计考试大纲

    全国计算机等级考试二级Python语言程序设计考试大纲(2018年版) 基本要求 掌握Python语言的基本语法规则. 掌握不少于2个基本的Python标准库. 掌握不少于2个Python第三方库,掌 ...

随机推荐

  1. 通过PowerShell查看Android端log信息

    在Windows下我们可以通过在cmd中输入adb logcat相关命令来查看安卓设备上的log信息,这在PowerShell里也可以做到.所以方便做成一个脚本,以便复用.代码如下: function ...

  2. Windows2003中IIS配置MVC提示HTTP错误 404-文件或目录未找到

    Windows2003中IIS提示HTTP错误 404-文件或目录未找到 一.开启服务 启动服务“ASP.NET 状态服务”(ASP.NET State Service ),设置成“自动”. 设置完成 ...

  3. ios项目中引用其他项目复习

    ios项目中引用其他开源项目,今天再次复习了,记个备注. 1. 将开源项目的.xcodeproj拖入项目frameworks 2. Build Phases下 Links Binary With Li ...

  4. asp.net MVC4 lognet4 日志

    asp.net MVC4 lognet4 日志 步骤: 1.引入log4net.dll 2.写配置文件 web.config 加入 如下代码 在<configSections> 中加入&l ...

  5. java ClassLoader与动态扩展

    摘自:http://blog.csdn.net/moreevan/article/details/6654781

  6. UVA10339 Watching Watches

    题目大意:有两个表,每天都会慢一点时间,给出每天慢得秒数,问下一次重合的时刻. 解题思路:时刻重合也就是说整整差了一周,一周是12小时,用12小时的秒数除以两个表的相差那就是需要多少天的时间后重合,知 ...

  7. .Net母版页

    母版页:MasterPage 母版页不是独立的,它是与用户控件一起来使页面结构更加优化. 从粗到细,逐步细化各级页面的模板结构.到页面中只需完善其不同之处即可,相同之处都放在各级母版页中实现了. We ...

  8. 大神写的一个纯CSS圆角框,膜拜!(支持IE9一下的低版本)

    留着提醒自己,底层才是最重要的,不要一直傻瓜的编程下去! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  9. [HDOJ5935]Car(精度,数学)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5935 题意:有个老司机在开车, 开车过程中车的速度是不减的. 交警记录了这个老司机在nn个时间点的位置 ...

  10. Tomcat源码导入Eclipse测试

    想要研究下Tomcat的体系结构或者源码,最好将Tomcat的源码导入到ide中,编写实例进行代码跟踪(debug). 这里参考了网上一些资料,将自己操作过程记个流水账. 准备: 1.Tomcat源码 ...