【python3基础】python3 神坑笔记
os 篇
os.listdir(path)
以下代码在 windows 和 linux 上跑结果会不一样:
import os
path = 'wuliytTaotao'
if not os.path.exists(path):
os.mkdir(path)
# 创建22个文件
for i in range(22):
f = open(os.path.join(path, 'file_%02d.txt' % i), 'w')
f.write(str(i))
f.close()
print(os.listdir(path)) # 在 windows 和 linux 上结果不一样,windows 上有序,而 linux 上无序
print(sorted(os.listdir(path))) # 在 windows 和 linux 上排序后的结果一样
linux上的结果:

运算符篇
is vs. ==
is 判断两个对象是不是同一个 id,而 == 判断两个对象的内容是否相等。判断两个对象(int、str 等)的内容是否相等,用 == 更加保险。
实例 1:判断两个整数相等
判断两个整数是否分别相等,用 is 可能会产生一些问题。python3 的整数常量池的范围是 [-5, 256]。用解释器一行一行执行如下程序 is 会有问题,用脚本执行就没问题:
a = 1
b = 1
a == b # True
a is b # True
c = 1234
d = 1234
c == d # True
c is d # False
实例 2:argparse 传参
运行如下程序,is 的行为在执行脚本时是否传入参数也有区别。(将如下程序保存到 tmp.py 文件中,python tmp.py 和 python tmp.py -b handsome 分别执行,结果不一样)
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-b", "--boy",
dest="boy", type=str, default="handsome")
args = parser.parse_args()
print(args)
boy = args.boy
print(boy is 'handsome')
print(boy == 'handsome')
实例 3:np.where
在使用 np.where 判断时,一定不能使用 is。
import numpy as np
a = np.array([True, False, False, True])
print(np.where(a == True)) # (array([0, 3]),)
print(np.where(a is True)) # (array([], dtype=int64),)
命令行参数篇
argparse 在解析 bool 参数时,如果按照 parser.add_argument('-a', dest='a', type=bool, default=True)解析参数 a,那么命令行中 -a False 和 -a True 返回都是 True,而取不到 False。
详情请见:【python3基础】命令行参数及 argparse - wuliytTaotao
References
谈谈Python的常量池 -- resolvewang
python3 常量池
【python3基础】python3 神坑笔记的更多相关文章
- Python3基础(十二) 学习总结·附PDF
Python是一门强大的解释型.面向对象的高级程序设计语言,它优雅.简单.可移植.易扩展,可用于桌面应用.系统编程.数据库编程.网络编程.web开发.图像处理.人工智能.数学应用.文本处理等等. 在学 ...
- python3基础视频教程
随着目前Python行业的薪资水平越来越高,很多人想加入该行业拿高薪.有没有想通过视频教程入门的同学们?这份Python教程全集等你来学习啦! python3基础视频教程:http://pan.bai ...
- Python3基础-特别函数(map filter partial reduces sorted)实例学习
1. 装饰器 关于Python装饰器的讲解,网上一搜有很多资料,有些资料讲的很详细.因此,我不再详述,我会给出一些连接,帮助理解. 探究functools模块wraps装饰器的用途 案例1 impor ...
- 2. Python3 基础入门
Python3 基础入门 编码 在python3中,默认情况下以UTF-8编码.所有字符串都是 unicode 字符串,当然也可以指定不同编码.体验过2.x版本的编码问题,才知道什么叫难受. # -* ...
- 云效(阿里云)流水线 + nginx + uWsgi + flask + python3 基础环境搭建 --备忘
一.开发环境搭建 1.安装python3 yum -y groupinstall "Development tools" yum -y install zlib-devel bzi ...
- python002 Python3 基础语法
python002 Python3 基础语法 编码默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 当然你也可以为源码文件指定不同的编码: # -* ...
- Python3基础(八) 模块
在程序中定义函数可以实现代码重用.但当你的代码逐渐变得庞大时,你可能想要把它分割成几个文件,以便能够更简单地维护.同时,你希望在一个文件中写的代码能够被其他文件所重用,这时我们应该使用模块(modul ...
- Python3基础语法和数据类型
Python3基础语法 编码 默认情况下,Python3源文件以UTF-8编码,所有字符串都是unicode字符串.当然你也可以为原码文件制定不同的编码: # -*- coding: 编码 -*- 标 ...
- Python3基础-目录
Python3基础-目录(Tips:长期更新Python3目录) 第一章 初识Python3 1.1 Python3基础-前言 1.2 Python3基础-规范 第二章 Python3内置函数&a ...
随机推荐
- 如果获取ruby的hash的v值?
最近写ruby,用到hash,通过k去获取v值,有时候通过hash["k"]去获取可以获取到,有时候通过又获取不到,感觉一脸懵逼 仔细观察了下ruby的hash,有两种表现形式,所 ...
- Feign Date类型时间错误问题
问题 在feign传输date类型的数据时,在调用方时间正确,而被调用方获取时时间会相差14个小时. 原因 Feign客户端在进行通信时,会将Date类型对象转为String类型,如果这个时间是北京时 ...
- .NET Core 3.0之深入源码理解Host(一)
写在前面 ASP .NET Core中的通用主机构建器是在v2.1中引入的,应用在启动时构建主机,主机作为一个对象用于封装应用资源以及应用程序启动和生存期管理.其主要功能包括配置初始化(包括加载配置以 ...
- 设置Redis的LRU策略
概念 LRU(Least Recently Used)最近最少使用算法是众多置换算法中的一种. maxmemory Redis中有一个maxmemory概念,主要是为了将使用的内存限定在一个固定的大小 ...
- RESTful 架构风格
在移动互联网的大潮下,『微服务』的概念也越来越被大家接受并应用于实践,日益增多的web service逐渐统一于RESTful 架构风格,如果开发者对RESTful 架构风格不甚了解,则开发出的所谓R ...
- Nginx + FastCGI + Django在windows上部署及nginx常用命令
一般应用都是部署在linux系统上,不会在windows上部署,emmm..所以有兴趣的就瞧瞧吧哈哈 nginx工作原理: nginx用于处理静态文件,动态部分经由fastcgi .scgi或uWSG ...
- A:mysql数据库章节导航
mysql数据库章节导航 mysql5.7的安装(yum和二进制安装) 数据库的基本操作 索引 权限管理 日志管理 逻辑备份mysqldump 物理备份:xtrabackup 主从复制-传统方式 主从 ...
- java对 zip文件的压缩和解压(ant解决中文乱码)
说明: 1.对于压缩的文件,当文件名称是中文时,若使用JDK API中自带的类(java.util.zip.ZipEntry; java.util.zip.ZipOutputStream;)进行压缩, ...
- 创建可执行的JAR包并运行
将一个应用程序制作成可执行的JAR包,通过JAR包来发布应用程序.创建可执行JAR包的关键在于:让java -jar命令知道JAR包中哪个类是主类,java -jar命令可以通过运行该主类来运行程序. ...
- Spring 中的观察者模式
一.Spring 中观察者模式的四个角色 1. 事件(ApplicationEvent) ApplicationEvent 是所有事件对象的父类.ApplicationEvent 继承自 jdk 的 ...