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.pypython 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 神坑笔记的更多相关文章

  1. Python3基础(十二) 学习总结·附PDF

    Python是一门强大的解释型.面向对象的高级程序设计语言,它优雅.简单.可移植.易扩展,可用于桌面应用.系统编程.数据库编程.网络编程.web开发.图像处理.人工智能.数学应用.文本处理等等. 在学 ...

  2. python3基础视频教程

    随着目前Python行业的薪资水平越来越高,很多人想加入该行业拿高薪.有没有想通过视频教程入门的同学们?这份Python教程全集等你来学习啦! python3基础视频教程:http://pan.bai ...

  3. Python3基础-特别函数(map filter partial reduces sorted)实例学习

    1. 装饰器 关于Python装饰器的讲解,网上一搜有很多资料,有些资料讲的很详细.因此,我不再详述,我会给出一些连接,帮助理解. 探究functools模块wraps装饰器的用途 案例1 impor ...

  4. 2. Python3 基础入门

    Python3 基础入门 编码 在python3中,默认情况下以UTF-8编码.所有字符串都是 unicode 字符串,当然也可以指定不同编码.体验过2.x版本的编码问题,才知道什么叫难受. # -* ...

  5. 云效(阿里云)流水线 + nginx + uWsgi + flask + python3 基础环境搭建 --备忘

    一.开发环境搭建 1.安装python3 yum -y groupinstall "Development tools" yum -y install zlib-devel bzi ...

  6. python002 Python3 基础语法

    python002 Python3 基础语法 编码默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 当然你也可以为源码文件指定不同的编码: # -* ...

  7. Python3基础(八) 模块

    在程序中定义函数可以实现代码重用.但当你的代码逐渐变得庞大时,你可能想要把它分割成几个文件,以便能够更简单地维护.同时,你希望在一个文件中写的代码能够被其他文件所重用,这时我们应该使用模块(modul ...

  8. Python3基础语法和数据类型

    Python3基础语法 编码 默认情况下,Python3源文件以UTF-8编码,所有字符串都是unicode字符串.当然你也可以为原码文件制定不同的编码: # -*- coding: 编码 -*- 标 ...

  9. Python3基础-目录

    Python3基础-目录(Tips:长期更新Python3目录) 第一章 初识Python3  1.1 Python3基础-前言  1.2 Python3基础-规范 第二章 Python3内置函数&a ...

随机推荐

  1. vue app项目 第一天 基本架构和路由配置

    一.前言 今天开始打算花6天时间 完成一个基于vue的买菜app 在这里记录一下项目的流程和第一次做这个项目遇到的坑 以及解决的办法 二.第一步 脚手架的安装 使用npm 安装好脚手架  安装脚手架教 ...

  2. .NET Core 使用HMAC算法

    一. HMAC 简介 通过哈希算法,我们可以验证一段数据是否有效,方法就是对比该数据的哈希值,例如,判断用户口令是否正确,我们用保存在数据库中的password_md5对比计算md5(password ...

  3. C#中的Skip()和Take()

    Skip()和Take()方法都是IEnumerable<T> 接口的扩展方法,包括C#中的所有Collections类,如ArrayList,Queue,Stack等等,还有数组和字符串 ...

  4. k8s的yaml说明

    理解k8s里的几个概念 Kubernetes 通过各种 Controller 来管理 Pod 的生命周期.为了满足不同业务场景,Kubernetes 开发了 Deployment.ReplicaSet ...

  5. Angular + Leaflet 实现房源数据可视化(附github源码)

    这是什么?租房信息展示平台 宏观的租房数据可视化微观的房源信息展示多条件搜索等等 链接地图搜租房​ 来龙去脉 受 @李国宝 的地图搜租房启发,利用其提供的开放API,配合自己在前端和地理信息系统方面的 ...

  6. NuGet修改默认包保存的位置

    NuGet默认的全局包下载地址一般为:C:\Users\{username}\.nuget\packages 修改方法: <?xml version="1.0" encodi ...

  7. iOS---------金额转大写

    -(NSString *)digitUppercase:(NSString *)numstr{ double numberals=[numstr doubleValue]; NSArray *numb ...

  8. Python 基础语法-str

    字符串常见操作 find:检测str是否包含在 mystr 中,如果是返回开始的索引值,否则返回 -1 mystr.index(str, start=0, end=len(mystr)) count: ...

  9. Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt

    最近安装python,已经安装好,cmd终端中输入python.pip等命令都有用 然而在配置requirements.txt文件过程中,执行语句 “pip install -r requiremen ...

  10. subprocess之check_out用法

    在python3中使用subprocess的check_out方法时,因为该输出为byte类型,所以如果要查看具体的内容时需要进行转码,如果转码不对话,会影响内容输出的可读性,如下: #1,输出解码不 ...