惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
M
MIT News - Artificial intelligence
MyScale Blog
MyScale Blog
博客园_首页
G
Google Developers Blog
博客园 - 【当耐特】
美团技术团队
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
Vercel News
Vercel News
小众软件
小众软件
博客园 - 司徒正美
雷峰网
雷峰网
T
Tailwind CSS Blog
V
V2EX
博客园 - 三生石上(FineUI控件)
F
Fortinet All Blogs
罗磊的独立博客
量子位
P
Proofpoint News Feed
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog

风萧古道 - 勤学苦练,年复一年

AI 编程时代,想象力成了最被奖励的能力 游戏服务器开发经验(五)应对复杂需求 沉浸式体验东汉末年生活 - 《真三国无双 起源》玩后感 怒其不争!致2025年HLTV的Top18-NiKo Linux家用服务器维护指南 游戏服务器开发经验(四)避免写Bug的习惯、技巧和心态 游戏服务器开发经验(三)线上维护 游戏服务器开发经验(二)避免内存泄露 游戏服务器开发经验(一)道具防刷 35岁找不到工作,绝对不会是软件开发人员的结局 用爱发电项目开发两个月的心得体会 以魏延“子午谷奇谋”讨论软件需求可行性问题 MQTT协议中可变长度的具体计算方式(有计算过程解析) 关于游戏服务器配置表功能的探讨 Java并发编程中上锁的几种方式 如何用C++分割一个字符串? CSAPP第二章-信息的表示与处理 我的自我介绍 Windows XP虚拟机中文版无需激活下载 Java TreeSet的一些用法和特性 Linux C++ Socket实战 传统软件服务器与游戏服务器架构区别 独立个人项目开发心得 - 任务切分、挑战性、实用性和半途而废 使用Python实现简单UDP Ping 使用Python开发一个简单的web服务器 Kotlin手动实现一个最简单的哈希表 Kotlin实现二叉堆、大顶堆、优先级队列 搭建Spark实战环境(3台linux虚拟机集群)(一)样板机的搭建 Springboot操作MongoDB,包括增改查及复杂操作 Unison在Linux下的安装与使用
Python的一些用法(可能不定时更新)
JonathanLin · 2019-12-01 · via 风萧古道 - 勤学苦练,年复一年

strip()、lstrip()、和rstrip()

Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

lstrip()就是从左边匹配然后删除字符,rstrip()从右边匹配然后删除字符。

表面上挺好理解的,但是用起来还是有一些陷阱。

如:

if __name__ == '__main__':
    string = 'abcdefghijkl'
    print(string.lstrip('bac'))
    # 输出 defghijkl

可以看到,虽然左侧开头的’abc’和’bac‘顺序不同,但lstrip()方法依旧将其匹配然后删除了。

所以如果我只是要删除开头的某一部分,比如获取标签内的字符:

就会把标签内容的最左边的a给匹配到了。

那么如何实现只根据字符顺序,匹配前面的字符呢?

用正则表达式:re.sub()

Python 的 re 模块提供了re.sub用于替换字符串中的匹配项。

语法:

参数:

  • pattern : 正则中的模式字符串。
  • repl : 替换的字符串,也可为一个函数。
  • string : 要被查找替换的原始字符串。
  • count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。

使用该方法:

js的indexOf()对应python的index()

对于数组而言:

js的indexOf()返回元素在数组中的下标:

var fruit = ['apple', 'banana', 'orange', 'pear']
console.log(fruit.indexOf('banana'))
// 输出 1

python里也有一个名字很像的index

if __name__ == '__main__':
    fruit = ['apple', 'banana', 'orange', 'pear']
    print(fruit.index('banana'))
    # 输出 1

但对于字符串:

对于js而言,依旧可以使用indexOf()函数。

找得到的情况:

var string = 'I love apple and banana'
console.log(string.indexOf('apple'))
// 输出 7

找不到的情况:

var string = 'I love apple and banana'
console.log(string.indexOf('orange'))
// 输出 -1

找不到时,输出-1。

而python的index在字符串中找不到时,将抛出异常。

if __name__ == '__main__':
    string = 'I love apple and banana'
    print(string.index('orange'))
    # Traceback (most recent call last):
    # File "/****.py", line 12, in <module>
    # print(string.index('orange'))
    # ValueError: substring not found

index()方法在找不到时,并不返回-1。

但find()函数在找不到时可以返回-1.

if __name__ == '__main__':
    string = 'I love apple and banana'
    print(string.find('orange'))
    # 输出 -1
    print(string.find('apple'))
    # 输出 7

python连接Oracle和MongoDB

这个。。待写,下篇文章再见。

2020.2.9已更新:点击这里

文件读取f.truncate()

关于文件的w,a,r和它们的+,在网上资料很多,这里我只想备份一下:

f.truncate()是将文件清空的函数。

只有在w的模式下可以执行,在a下没有效果,r则抛出异常。

if __name__ == '__main__':
    file_name = '测试.txt'
    with open(file_name, 'w') as f:
        f.truncate()

对dict对象的.keys()取出所有键

这是个非常实用的方法。

if __name__ == '__main__':
    obj = {
        'website': 'www.windypath.com',
        'name': '风萧古道',
        'favorite_team': 'Los Angeles Lakers'
    }
    print(obj.keys())
    # dict_keys(['website', 'name', 'favorite_team'])

使用range()和enumerate()对数组遍历

range():传入某个整数,获取从0到该数-1的数组

if __name__ == '__main__':
    sum = 5
    for i in range(sum):
        print(i)
    # 输出
    # 0
    # 1
    # 2
    # 3
    # 4

enumerate():传入某个list,获取每个元素的下标和自身

if __name__ == '__main__':
    fruit_list = ['apple', 'banana', 'orange', 'pear']
    for index, fruit in enumerate(fruit_list):
        print(index, fruit)
    # 输出
    # 0 apple
    # 1 banana
    # 2 orange
    # 3 pear