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

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

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

94960

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

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

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

    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的代码是否让你耳目一新

    1.1K20

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

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

    59620

    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,不会按优先级顺序 上述叫做基本类型与基本概念

    63920

    android-代码样式规范

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

    55230

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

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

    1.1K20

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

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

    97710

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

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

    78110

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

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

    1.3K101

    Google Java 编程风格指南

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

    1.1K11

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

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

    1K70

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

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

    63830

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

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

    2.8K40

    简述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

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

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

    56620

    这20个常规Python语法你都搞明白了吗?

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

    49710

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

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

    58520
    领券