首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 进阶指南(编程轻松进阶):六、编写 Python 风格代码

---- 最后,这些指导方针是大多数程序员支持反对观点。像所有好道德准则一样,它们看似矛盾,但却提供最大灵活性。以下是我对这些格言解读: 漂亮总比丑陋好。漂亮代码认为是易读易懂。...当函数返回错误代码None不是引发异常时,可能会发生无声错误。这两句格言告诉我们,对于一个程序来说,让它快速失败崩溃比选择漠视它要好。...使用缩进对 Python 代码块进行分组可能看起来很奇怪,因为其他语言大括号{}来声明代码块开始结束。...更常见是完全省略操作符布尔值,编写类似于if spam:if not spam:代码,不是if spam == True:if spam == False:。...F 字符串以字母f作为字符串前缀,并使用大括号来标记可以在字符串中放置字符串整个表达式)位置。

88360

全栈数据工程师养成攻略:Python 基本语法

字符串也就是我们经常接触到文本,可以往里面放任意长度内容,单引号双引号括起来。...使用切片可以访问字符串某个字符某个片段。 列表 列表好比一条队伍,里面依次存放着多个变量。列表字符串类似,但字符串每个元素都是字符,列表中每个元素可以是任意类型变量。...列表中元素是有序对等,所以是下标来赋值访问,字典中元素是无序,所以是key来操作相应value。 使用 has_key() 判断字典中是否有某个key。...注释 注释代码将不会运行,可以看作是写给自己其他程序猿阅读一些笔记说明,提高代码可读性。 在Sublime中,选中需要注释内容,按Ctrl+/即可完成注释。...行缩进 在Python中,代码块边界不是通过大括号等符号进行显式划分,而是通过行缩进实现

87980
您找到你想要的搜索结果了吗?
是的
没有找到

shell 基本语法

" # I am dasu. xxx='dasu' key=value 形式定义变量,= 等号两边不能有空格 $xxx ${xxx} 变量名前加个 $ 使用变量,大括号省略也可以 语法-字符串...不是找子字符串 `xxx` $(xxx) 因为不加引号也可以认为是字符串处理,所以在某些场景,需要让脚本解释器知道,这是一串命令,不是字符串,此时就需要通过 ` 反引号,或者 $() 来实现...= 用于判断字符串是否相等 -z 用于判断字符串长度是否为 0,是的话,返回 true -n 用于判断字符串长度是否为 0,不是的话,返回 true $xxx 用于判断 xxx 字符串是否为空,不为空返回...[] [[]] 这两种,不适用于 (()) 文件测试运算符 -d -r -w -x -s -e -f 检测文件是否是普通文件(既不是目录,也不是设备文件) -r 检测文件是否可读 -w 检测文件是否可写...,此时就不会认为它是字符串了,如: [ 1+1 ] # 无报错也无输出 当有 $ 时,就无需区分字符串场景了,自然也就可以省略掉空格了,但保留好习惯,都留着空格也是很好做法 命令表达式 命令是指

1.3K30

如何优雅写好Pythonic代码?

in range(0, 20) if x % 3 == 0} 3、字符串拼接 这是一个老生常谈问题,当我们需要将数个字符串拼接时候,习惯性使用 "+" 作为连接字符串手段。...sentence = '' for word in words: sentence += '' + word 解决这个问题办法是使用字符串连接join,Python写法如下: words =...: a = 'I love Python.' reverse_a = a[::-1] 5、for/else语句 在C语言Java语言中,我们寻找一个字符是否在一个list中,通常会设置一个布尔型变量表示是否找到...使用时候也会非常简单: code, desc = f() print code, desc 14、使用*运算符 *运算符** 运算符完美的解决了将元组参数、字典参数进行 unpack,从而简化了函数定义形式...当然,Python代码如下: num = [1, 3, 3, 4, 5, 6, 3, 6, 6, 6] print max(set(num),key=num.count) 这些Pythonic代码是否让你耳目一新

1K20

Python变量

引用类型: 列表list、集合set,字典dict 对于字符串(字符串是值类型,不可改变)相加: 对于a = '1',a += '2' 结果为'12',其并不是原串改变 >>> a...转换规则: 对于int,float,0认为是False,其余均是True 对于str,空串''认为是False,其余均是True 对于list...,空列表[]认为是False,其余均为True 其余类似 [] or [1] = [1] 返回是True值形式,但不一定是bool型 '' and...)==str是True,这种方式不推荐 注意: 上述方法不能判断a子类是否是str 下面的方法可以判断a子类是不是某种类型 判断对象类型:...,不是运算符类型,自定义顺序推荐(括号) 对于 = : 其优先级高于or,但是a = 1 or 0,则会先计算or,不会按优先级顺序 上述叫做基本类型与基本概念

61420

Python学习笔记之基础知识点概览

使用片段运算符[]、[:]获取子集。索引0为始,-1为终。 []包前不包后。 + 是连接运算符, * 是重复运算符。...列表使用方式字符串类似:使用 []、[:] 来访问,索引从 0 开始, -1 表示最后一个元素索引。 + 是列表连接符, * 是重复运算符。...可以认为是”只读列表”。 元组可以认为是一个”列表集合”引用,可以指向不同”列表集合”,但指向目标”列表集合”不能修改。...<< 二进制左移 >> 二进制右移 ~a = a - 1 >>> a = 1 >>> a 成员运算符 成员运算符常用于 测试给定值是否为序列中成员例如字符串、列表元组。...find(str, beg = 0 end = len(string)) : 如果索引beg结束索引end给定,则确定str是否字符串字符串字符串中,如果找到则返回第一个位置索引,否则为-1

57220

android-代码样式规范

如果一个方法超过40行左右,考虑它是否可以分解不伤害程序结构。...当通常证明某些日志记录可能发生多次条件时,实施一些速率限制机制以防止相同(非常相似)信息许多重复副本来溢出日志是一个好主意。 网络连接损失认为是常见,完全预期,不应该被无偿地记录。...在应用程序中发生后果网络连接丢失应在DEBUGVERBOSE级别记录(取决于后果是否足够严重,并且意外足以登录到发布版本中)。...来自任何不受信任源(包括共享存储上任何文件来自任何网络连接数据)无效数据认为是预期,并且当检测到无效时,不应该在高于DEBUG级别触发任何日志记录日志记录应尽可能有限)。...请记住,调用代码Log.v()在发布版本上编译执行,包括构建字符串,即使日志没有读取。 任何意图其他人读取并在发布版本中可用日志记录应该是简洁不是含糊,并且应该是可以理解

53230

30个 JS 实用技巧总结,助你提升工作效率

带有单个语句箭头函数将隐式返回其计算结果(该函数必须省略大括号 ({}) 以省略 return 关键字)。 要返回多行语句(例如对象字面量),必须使用 () 不是 {} 来包装函数体。...14、展开运算符 ES6 中引入扩展运算符有几个例,可以使 JavaScript 代码使用起来更加高效有趣。它可用于替换某些数组函数。展开运算符三个点表示。...=)运算符在需要时执行自动类型转换。===( !==)运算符不会执行任何转换。它比较值类型,这可以认为比 == 更快。...在 JavaScript 中,0 认为是“假”,大于小于 0 数字认为是“真”。因此,必须像这样编写正确代码。... 结论 我知道还有许多其他技巧良好做法,因此,如果你有任何要添加内容,或者你对我分享内容有任何反馈更正,请添加评论。 不要自私,请与你朋友分享知识。

89510

转-Go语言开发常见陷阱,你遇到过几个?

不可改变字符串——如果想通过索引运算符来更新一个字符串变量中独立字符是会出现错误,由于字符串是只读字节片。正确做法是使用一个单字节片进行操作不是转成字符串类型进行操作。...字符串索引运算符——字符串索引运算符返回是字节值不是字符。 字符串不总是UTF8文本——字符串没有限定为UTF8文本。它们可以包含任何字节。只有当使用字符串常数时才是UTF8文本。...字符串长度——Go中应使用RuneCountInString()函数来取得字符串长度值不是len()函数。 多行切片,数组,图定义中缺少逗号。...按位不是运算符:很多语言使用~来作为一元逻辑非运算符Go中则使用^。 运算符优先级差异。 导出结构域是没有编码。 程序结束时没有销毁Go线程。 当目标接收器就绪时就发送一个缓冲区通道返回。...封闭通道发送问题。 使用“nil”通道。 有值接收器方法不能用于改变原始值。 中级开发者应该注意地方: 关闭HTTP响应。 关闭HTTP连接。 结构,数组,切片比较。

1.3K101

Google Java编程风格规范(2020年4月原版翻译)

2.3.2 特殊转义序列 对于具有特殊转义序列任何字符(\b, \t, \n, \f, \r, “, ‘及),我们使用它转义序列,不是相应八进制(比如\012)Unicode(比如\u000a...String[][] x = foo;(大括号间没有空格,见下面的Note)。 在任何二元三元运算符两侧。...4.7 小括号来限定组:推荐 除非作者reviewer都认为去掉小括号也不会使代码误解,或是去掉小括号能让代码更易于阅读,否则我们不应该去掉小括号。...每个常量都是一个静态final字段,但不是所有静态final字段都是常量。在决定一个字段是否是一个常量时, 考虑它是否真的感觉像是一个常量。...,不是具体某个对象表达式。

1K20

简述C语言宏定义使用

(x+1)); print(COUNT(++X)); //结果输出:11 42 不是函数输出36 注意: 预编译器只是进行简单文本替换,COUNT(x+1)替换成COUNT(x+1x+1...),5+15+1=11,不是36 CUNT(++x)替换成++x*++x即为6*7=42,不是想要6*6=36,连续前置自加加两次 解决办法: 括号将整个替换文本及每个参数括号括起来print...如果大括号将其包起来依然会有问题,例如 #define foo(x) { bar(x); baz(x); } if (!...#运算符 #作用就是将#后边宏参数进行字符串操作,也就是将#后边参数两边加上一对双引号使其成为字符串。例如a是一个宏形参,则替换文本中#a系统转化为"a",这个转换过程即为字符串化。...#运算符也可以用在替换文本中,它作用起到粘合作用,即将两个宏参数连接为一个数 #define TEST(param1,param2) (param1##param2) int num =TEST(

1.6K20

Google Java 编程风格指南

2.3.2 特殊转义序列 对于具有特殊转义序列任何字符(\b, \t, \n, \f, \r, ", '及),我们使用它转义序列,不是相应八进制(比如 \012)Unicode(比如 \u000a...4.5 自动换行 术语说明:一般情况下,一行长代码为了避免超出列限制(80100个字符)分为多行,我们称之为自动换行(line-wrapping)。...String[][]x=foo;(大括号间没有空格,见下面的Note)。 在任何二元三元运算符两侧。这也适用于以下“类运算符”符号: - 类型界限中&( )。...每个常量都是一个静态final字段,但不是所有静态final字段都是常量。在决定一个字段是否是一个常量时, 考虑它是否真的感觉像是一个常量。...,不是具体某个对象表达式。

1K11

Java 编程风格军规,看这一篇就够了

2.3.2 特殊转义序列 对于具有特殊转义序列任何字符(, , , , , ", '及),我们使用它转义序列,不是相应八进制(比如 )Unicode(比如 )转义。...4.5 自动换行 术语说明:一般情况下,一行长代码为了避免超出列限制(80100个字符)分为多行,我们称之为自动换行(line-wrapping)。...String[][]x=foo;(大括号间没有空格,见下面的Note)。 在任何二元三元运算符两侧。这也适用于以下“类运算符”符号: - 类型界限中&( )。...4.7 小括号来限定组:推荐 除非作者reviewer都认为去掉小括号也不会使代码误解,或是去掉小括号能让代码更易于阅读,否则我们不应该去掉小括号。...,不是具体某个对象表达式。

92540

Python打牢基础,从12个语法开始!

# 整型 a = 1 # 浮点型 b = 2.1 print a, b 字符串 字符串也就是我们经常接触到文本,可以往里面放任意长度内容,单引号双引号括起来。...列表字符串类似,但字符串每个元素都是字符,列表中每个元素可以是任意类型变量。...列表中元素是有序对等,所以是下标来赋值访问,字典中元素是无序,所以是key来操作相应value。...03 注释 注释代码将不会运行,可以看作是写给自己其他程序猿阅读一些笔记说明,提高代码可读性。...# 以下变量赋值将报错 import = 1 05 行缩进 在Python中,代码块边界不是通过大括号等符号进行显式划分,而是通过行缩进实现

76410

Google 出品 Java 编码规范,强烈推荐,权威又科学!

2.3.2 特殊转义序列 对于具有特殊转义序列任何字符(\b, \t, \n, \f, \r, ", '及),我们使用它转义序列,不是相应八进制(比如 \012)Unicode(比如 \u000a...4.5 自动换行 术语说明:一般情况下,一行长代码为了避免超出列限制(80100个字符)分为多行,我们称之为自动换行(line-wrapping)。...String[][]x=foo;(大括号间没有空格,见下面的Note)。 4、在任何二元三元运算符两侧。这也适用于以下“类运算符”符号: 类型界限中&( )。...每个常量都是一个静态final字段,但不是所有静态final字段都是常量。在决定一个字段是否是一个常量时, 考虑它是否真的感觉像是一个常量。...,不是具体某个对象表达式。

2.5K40

全栈 - 4 Python 先学会基本语法

# 整型 a = 1 # 浮点型 b = 2.1 print a, b 字符串 字符串也就是我们经常接触到文本,可以往里面放任意长度内容,单引号双引号括起来。...列表字符串类似,但字符串每个元素都是字符,列表中每个元素可以是任意类型变量。...列表中元素是有序对等,所以是下标来赋值访问,字典中元素是无序,所以是key来操作相应value。...注释 注释代码将不会运行,可以看作是写给自己其他程序猿阅读一些笔记说明,提高代码可读性。...# 以下变量赋值将报错 import = 1 行缩进 在Python中,代码块边界不是通过大括号等符号进行显式划分,而是通过行缩进实现

99070

Python入门,从19个语法开始!

# 整型a = 1# 浮点型b = 2.1print a, b 04 字符串 字符串也就是我们经常接触到文本,可以往里面放任意长度内容,单引号双引号括起来。...列表字符串类似,但字符串每个元素都是字符,列表中每个元素可以是任意类型变量。...列表中元素是有序对等,所以是下标来赋值访问,字典中元素是无序,所以是key来操作相应value。...08 注释 注释代码将不会运行,可以看作是写给自己其他程序猿阅读一些笔记说明,提高代码可读性。...# 以下变量赋值将报错import = 1 10 行缩进 在Python中,代码块边界不是通过大括号等符号进行显式划分,而是通过行缩进实现

61930

Python入门,从19个语法开始!

# 整型a = 1# 浮点型b = 2.1print a, b 04 字符串 字符串也就是我们经常接触到文本,可以往里面放任意长度内容,单引号双引号括起来。...列表字符串类似,但字符串每个元素都是字符,列表中每个元素可以是任意类型变量。...列表中元素是有序对等,所以是下标来赋值访问,字典中元素是无序,所以是key来操作相应value。...08 注释 注释代码将不会运行,可以看作是写给自己其他程序猿阅读一些笔记说明,提高代码可读性。...# 以下变量赋值将报错import = 1 10 行缩进 在Python中,代码块边界不是通过大括号等符号进行显式划分,而是通过行缩进实现

54710

先从Python这19个易错语法开始学习!

# 整型a = 1# 浮点型b = 2.1print a, b 04 字符串 字符串也就是我们经常接触到文本,可以往里面放任意长度内容,单引号双引号括起来。...列表字符串类似,但字符串每个元素都是字符,列表中每个元素可以是任意类型变量。...列表中元素是有序对等,所以是下标来赋值访问,字典中元素是无序,所以是key来操作相应value。...08 注释 注释代码将不会运行,可以看作是写给自己其他程序猿阅读一些笔记说明,提高代码可读性。...# 以下变量赋值将报错import = 1 10 行缩进 在Python中,代码块边界不是通过大括号等符号进行显式划分,而是通过行缩进实现

73720
领券