Python代码显得Pythonic(区别于其他语言的写法)

Python代码显得Pythonic(区别于其他语言的写法)

目录

一、字符串

二、运算

三、赋值

四、变量命名

五、提升代码可读性

(一)避免用分号;在一行内些多条语句

(二)避免用\符号来换行

(三)if-else三元表达式

一、字符串

对于字符串连接,相比于简单的+,更pythonic的做法是尽量使用%操作符或者format函数格式化字符串。

name = "jack" n = 90 # no x = 'name: ' + name + '; score: ' + str(n) # yes  x = 'name: %s; score: %d' % (name, n) x = 'name: {}; score: {}'.format(name, n)

避免在循环中用+和+=操作符来累加字符串。

由于字符串是不可变的, 这样做会创建不必要的临时对象, 并且导致二次方而不是线性的运行时间。

比较pythonic的做法是将每个子串加入列表, 然后在循环结束后用.join 连接列表。

# no a = "" for i in ["a", "b", "c"]:     a += i # yes a = "".join(["a", "b", "c"]) 二、运算

python支持链式运算,pythonic的做法是优先链式运算,而不是使用and、or。

# no a=1, b=1, c=1 if a > 1 and a < 2:     pass # yes a=b=c=1 if 1 < a <2:     pass 三、赋值

python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

在 python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。

python允许你同时为多个变量赋值。

a, b, c = 1, "a", 2 print(c)

这个特性的一个运用是,在不引入第三个变量的情况下,交换两个变量的值,非常优雅

a, b = b, a

当某函数有多个返回值,但只想获取其中某值时,pythonic的做法是使用“_”在赋值时代替我们不需要的变量的位置。

# func函数有两个返回值,但只想要第一个 need, _ = func(*args)  四、变量命名

Python最基本的命名规则是:第一个字符必须是字母表中字母或下划线 _,标识符的其他的部分由字母、数字和下划线组成,且对对大小写敏感。

python对变量命名时应避免变量名过长。

此外,对于较长的变量名,更 pythonic 的做法是用下划线 _ 连接,如some_var,而非鞍型(大驼峰、小驼峰)格式,如 someVar

# no SomeVar = 1 # yes some_var = 1 五、提升代码可读性

有一些写法是Python允许的,但是却不被推荐的,因为这些写法会降低代码的可读性。

(一)避免用分号;在一行内些多条语句

例如:

import sys; x = 'hello'; sys.stdout.write(x + '\n')

的可读性,远远弱于

import sys x = 'hello' sys.stdout.write(x + '\n') (二)避免用\符号来换行

如果代码包含在括号、方括号或大括号中,Python将会认为代码是一行的:

def function(arg_one, arg_two,              arg_three, arg_four):     return arg_one

因此,为了提升可读性,我们应尽量避免用\符号进行换行:

from mypkg import example1, \     example2, example3

这种方式的可读性比用括号换行的可读性低很多。

(三)if-else 三元表达式

下面是一个if-else 三元表达式,可以将 if-else 放在一行

value_when_true if condition_is_ture else value_when_condition_is_false

例如:

a = "Hello" if foo() else "Goodbye"

我们可以用三元表达式来把if else 放在一行写,但是不要把 if-elif-else 放在一行写:

一方面,这样做会使得一行代码变得过长,违反PER-8的书写规则:规定一行代码最长不能超过80个字符。

另一方面,这么写也违反了Python之禅:‘可读性为王’。

最后,Python 的语法也不支持这样x写。

因此,当我们需要用到 elif 的时候,我们需要写一个常规的、换行的 if-elif-else 表达式

到此这篇关于Python代码显得Pythonic(区别于其他语言的写法)的文章就介绍到这了,更多相关Python代码显得Pythonic内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    字符库快捷键|字符串快捷键

    字符库快捷键|字符串快捷键,,1. 字符串快捷键1、单行注释单行注释是 #Mac的快捷键是 command+/windows的快捷键是 Ctrl + /2、多行注

    探探语言设置|探探怎么设置语言

    探探语言设置|探探怎么设置语言,,1. 探探怎么设置语言打开探探软件,然后就有消息提示的红点,点开就行了!其实这些软件都是挺简单的操作的,都是

    git设置编码|git语言设置

    git设置编码|git语言设置,,git设置编码点击cap4j搜索从git直接链接上拉代码。git语言设置Git是一个开源的分布式版本控制系统,可以有效、高

    区域语言设置|区域语言设置工具

    区域语言设置|区域语言设置工具,,区域语言设置工具你好,大致的方法如下,可以参考:1、按下键盘的windows 图标,再开始菜单中单击“设置”;出现的

    c4d语言设置|c4d汉语设置

    c4d语言设置|c4d汉语设置,,1. c4d汉语设置mac版的C4D是这样的,中文字体是有的,但是是以拼音的形式存在,比如黑体就是ht。中文字体以拼音方式

    电脑宣传语|电脑宣传语言

    电脑宣传语|电脑宣传语言,,1. 电脑宣传语言1.我做好了与你过一辈子的打算,也做好了你随时要走的准备,2.每段青春都会苍老,但我希望记忆里的你

    office语言设置|微软office语言设置

    office语言设置|微软office语言设置,,微软office语言设置一、首先点击桌面左下角“WIN键”。二、弹出选项内点击“所有程序”。三、接着点

    小米设置日语|小米设置日语语言

    小米设置日语|小米设置日语语言,,1. 小米设置日语语言MIUI系统文字目前只支持简体中文、繁体中文、英文、藏文和维吾尔文,不支持日文 2. 小

    易语言开发电脑系统|易语言电脑版

    易语言开发电脑系统|易语言电脑版,,1. 易语言电脑版首先编译——是将程序编译为exe文件,只能在有易语言的机子上运行,独立编译——是将程序