Python知识点进阶——细节问题
int()强制转换浮点数
在int()的强制转换浮点数时候,不管是正数还是负数,只取整数部分。
注意:这里不是向上或者向下取整,也不是四舍五入。
无限递归
递归是为了将问题简化为更小规模的同类型问题,最后加以解决。
但是有一种情况是递归时不断调用自身,达到不了最简单的情况,所以一直找不到递归的出口
当我们运行调用这个函数时,系统抛出异常,意思是达到了最大的递归深度。
字符串是不可变的
字符串和元组是不可变的数据类型,那字符串的不可变性体现在哪儿呢?
结果抛出异常,提示不让我修改,体现了字符串的不可变性,如果执意修改,可以这样:
联合使用字符串的切片和拼接可完成。
一些遗漏的字符串方法
upper()和lower()方法
upper():能将一个字符串的字母全变成大写,lower()与之相反。
find():可以在字符串中查找子串是否存在。
如果找到,返回的是子串的起始索引位置,例如Hello是从字符串索引0位置开始,空格是在索引5位置,当找不到子串时,返回-1,而不是抛出异常。
还可以限定查找开始的索引位置:
空格的索引是5,当我们从索引3开始往后找,能找到空格;当我们从索引7开始找,则返回没找到,因为索引7已经在索引5之后了。
字符串快速转换为列表的方法
split方法中默认是空格,所以有以上两种写法。
字典中按照键的顺序输出
字典有三大特性其中有一个就是无序性。
如果想要按照key的字母顺序打印,则可
通过value找到key
自定义一个reverse——lookup的函数,传入两个参数,第一个是要查询的字典,第二个是要查的值。
然后循环字典,将键对应的值分别和要查找的值比较,当出现一样的时候就返回。
当如果查找不到时,应该返回找不到,可以使用raise关键字:它可以抛出异常。
当找到对应的key,直接运行return,当没有找到时,最后会抛出设定的Lookup
可变长元组参数
*开头的收集到的是元组参数,既然有收集,可会有分散,例子
divmod函数是一个求商和余数的函数,这里返回了4和1。
如果我们一步到位,发现系统抛出了异常,需要两个参数,只给了一个。
此时需要尝试分散,也就是今天介绍的内从。
我们在传入的元组前加了一个 * 号,即可将元祖拆开,此时返回正常了。
序列合体
将序列(字符串,列表,元组)相互合并的操作
zip()函数接收两个或者多个序列,返回一个元组列表,每个元组包含来自每个序列中的一个元素
返回的结果是一个zip对象,可以简单的认为是一个压缩包。
当我们要获取查看它的元素,可以使用循环变量,如果想将结果放在一个list中,可以这样:
当然还可以将字符串和列表合并:
甚至多个序列合并:
zip()函数的出现为我们创建字典提供了新方法:
文件名和路径
返回当前目录:
返回当前目录的好处:
1.方便构造文件操作路径
2.提醒我们当前在什么路径
检查该目录下是否存在某个文件:
Python知识点进阶——细节问题的更多相关文章
- Python知识点进阶——生成器
生成器 为什么要将列表转化为迭代器? 因为列表太大的话用内存太大,做成迭代器可以节省空间,用的时候再拿出部分. 生成器是不会把结果保存在一个系列中,而是保存生成器的状态,在每次进行迭代时返回一个值,知 ...
- Python知识点进阶——迭代器
可迭代对象 可迭代对象可以简单的理解为用for循环遍历的,如list.tuple.dict.set.str 判断一个对象是否是迭代器: 可以将数据类型 和 是否为可迭代对象 比较来判断是否是可以迭代 ...
- 学习python须知,Python基础进阶需掌握哪些知识点?
Python基础进阶需要掌握哪些知识点?Python将是每个程序员的标配,有编程基础再掌握Python语言对于日后的升职加薪更有利.Python语言简洁利于理解,语法上相对容易能够让开发者更专注于业务 ...
- Python爬虫进阶四之PySpider的用法
审时度势 PySpider 是一个我个人认为非常方便并且功能强大的爬虫框架,支持多线程爬取.JS动态解析,提供了可操作界面.出错重试.定时爬取等等的功能,使用非常人性化. 本篇内容通过跟我做一个好玩的 ...
- python模块导入细节
python模块导入细节 官方手册:https://docs.python.org/3/tutorial/modules.html 可执行文件和模块 python源代码文件按照功能可以分为两种类型: ...
- python包导入细节
包导入格式 导入模块时除了使用模块名进行导入,还可以使用目录名进行导入.例如,在sys.path路径下,有一个dir1/dir2/mod.py模块,那么在任意位置处都可以使用下面这种方式导入这个模块. ...
- 【转】python包导入细节
[转]python包导入细节 包导入格式 导入模块时除了使用模块名进行导入,还可以使用目录名进行导入.例如,在sys.path路径下,有一个dir1/dir2/mod.py模块,那么在任意位置处都可以 ...
- 【转】python模块导入细节
[转]python模块导入细节 python模块导入细节 官方手册:https://docs.python.org/3/tutorial/modules.html 可执行文件和模块 python源代码 ...
- python最全学习资料:python基础进阶+人工智能+机器学习+神经网络(包括黑马程序员2017年12月python视频(百度云链接))
首先用数据说话,看看资料大小,达到675G 承诺:真实资料.不加密,获取资料请加QQ:122317653 包含内容:1.python基础+进阶+应用项目实战 2.神经网络算法+python应用 3.人 ...
随机推荐
- (转)vmware克隆Centos6.4虚拟机网卡无法启动问题
vmware克隆Centos6.4虚拟机网卡无法启动问题 原文:http://blog.51cto.com/oldboy/1363853 快速处理办法: cat /etc/sysconfig/netw ...
- Hadoop源生实用工具之distcp
1 概览 DistCp(Distributed Copy)是用于大规模集群内部或者集群之间的高性能拷贝工具. 它使用Map/Reduce实现文件分发,错误处理和恢复,以及报告生成. 它把文件和目录的列 ...
- SpringBoot | 第二十章:异步开发之异步请求
前言 关于web开发的相关知识点,后续有补充时再开续写了.比如webService服务.发邮件等,这些一般上觉得不完全属于web开发方面的,而且目前webService作为一个接口来提供服务的机会应该 ...
- P1736 创意吃鱼法80
题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1 ...
- JVM虚拟机 - Class类文件结构
概述 Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎都是程序运行的必要数据 ...
- spring transaction 初识
spring 事务初识 1.spring事务的主要接口,首先盗图一张,展示出spring 事务的相关接口.Spring并不直接管理事务,而是提供了多种事务管理器,他们将事务管理的职责委托给Hibern ...
- 构建第一个spring boot2.0应用之项目启动运行的几种方式(二)
方法一. 配置Run/Debug Configuration 选择Main Class为项目 Application启动类(入口main方法) (2).进行项目目录,即包含pom.xml的目录下,启 ...
- Cocos2d-x v3.1 GUI系统--环境构建(七)
Cocos2d-x v3.1 GUI系统--环境构建(七) 在使用Cocos2d-x的GUI系统时,由于生成的工程默认是没有将GUI系统所需的库导入到项目的,所以我们必须把库导入到工程中并对工程做一些 ...
- jQuery-显示与隐藏不用判断的快捷方法
功能:显示被隐藏的元素,隐藏已显示的元素. 常规方法:(需要先判断元素状态) $("button").click(function(){ if ($(".content& ...
- iframe高度随内容自适应的方法
我们知道,iframe最大的问题,就是高度的问题,如果你内容的高度是变化,要么你就给你的容器写个固定的高度,如果内容是未知的,显然这个方法并不能达到我们的想要的效果,要么就是通过js来解决这个问题. ...