成绩查询网站开发,网站策划是干什么的,常州市中大建设工程有限公司网站,怎样做的网站内网外网都能用原文作者#xff1a;站在两个世界边缘 小象编辑#xff1a;VL今天给大家介绍几个Python里(可能没那么广为人知的)小知识#xff0c;希望能给大家带来帮助#xff0c;让编程更有乐趣。1.如何修改解释器提示符正常情况下#xff0c;我们在终端下执行Python 命令是这样… 原文作者站在两个世界边缘 小象编辑VL今天给大家介绍几个Python里(可能没那么广为人知的)小知识希望能给大家带来帮助让编程更有乐趣。1.如何修改解释器提示符 正常情况下我们在终端下执行Python 命令是这样的。 for i in range(2):... print (i)...01你是否想过 和 ... 这两个提示符也是可以修改的呢sys.ps1 sys.ps2 是指定解释器的主要和辅助提示的字符串。仅在解释器处于交互模式时才定义这些。在这种情况下它们的初始值是和。如果将非字符串对象分配给任一变量则每次解释器准备读取新的交互式命令时都会重新评估该变量。这可以用来实现动态提示。’ ”… ‘str() import sys sys.ps1 sys.ps2 ... sys.ps2 ................ sys.ps1 Python编程时光 Python编程时光for i in range(2): ................ print (i) ................ 0 1 2. 类首字母不一定是大写在正常情况下我们所编写的所见到的代码好像都默许了类名首字母大写而实例用小写的这一准则。但这并不是强制性的即使你反过来的也没有关系。但有一些内置的类首字母都是小写而实例都是大写。比如 bool 是类名而 TrueFalse 是其实例比如 ellipsis 是类名Ellipsis是实例还有 intstringfloatlisttupledict 等一系列数据类型都是类名它们都是小写。3. 增量赋值的性能更好诸如 和 * 这些运算符叫做 增量赋值运算符。这里使用用 举例以下两种写法在效果上是等价的。# 第一种a 1 ; a 1# 第二种a 1; a a 1 其背后使用的魔法方法是 __iadd__如果没有实现这个方法则会退而求其次使用 __add__ 。这两种写法有什么区别呢用列表举例 a b使用 __iadd__ 的话就像是使用了a.extend(b),如果使用 __add__ 的话则是 a ab,前者是直接在原列表上进行扩展而后者是先从原列表中取出值在一个新的列表中进行扩展然后再将新的列表对象返回给变量显然后者的消耗要大些。所以在能使用增量赋值的时候尽量使用它。4. and 和 or 的取值顺序and 和 or 是我们再熟悉不过的两个逻辑运算符。而我们通常只用它来做判断很少用它来取值。如果一个or表达式中所有值都为真Python会选择第一个值而and表达式则会选择第二个。5. 省略号也是对象... 这是省略号在Python中一切皆对象。它也不例外。在 Python 中它叫做 Ellipsis 。在 Python 3 中你可以直接写…来得到这玩意。 ...Ellipsis type(...)class ellipsis 而在 2 中没有…这个语法只能直接写Ellipsis来获取。 EllipsisEllipsis type(Ellipsis) ellipsis 它转为布尔值时为真 bool(...)True最后这东西是一个单例。 id(...)4362672336 id(...)4362672336这东西有啥用呢据说它是Numpy的语法糖不玩Numpy的人可以说是没啥用的。在网上只看到这个 用 ... 代替 pass 稍微有点用但又不是必须使用的。try:1/0except ZeroDivisionError: ...6. 默认参数最好不为可变对象函数的参数分三种可变参数默认参数关键字参数这里要说的是传递默认参数时新手很容易踩雷的一个坑。先来看一个示例def func(item, item_list[]): item_list.append(item) print(item_list)func( iphone )func( xiaomi , item_list[ oppo , vivo ])func( huawei )在这里你可以暂停一下思考一下会输出什么思考过后你的答案是否和下面的一致呢[ iphone ][ oppo , vivo , xiaomi ][ iphone , huawei ]如果是那你可以跳过这部分内容如果不是请接着往下看这里来分析一下。Python 中的 def 语句在每次执行的时候都初始化一个函数对象这个函数对象就是我们要调用的函数可以把它当成一个一般的对象只不过这个对象拥有一个可执行的方法和部分属性。对于参数中提供了初始值的参数由于 Python 中的函数参数传递的是对象也可以认为是传地址在第一次初始化 def 的时候会先生成这个可变对象的内存地址然后将这个默认参数 item_list 会与这个内存地址绑定。在后面的函数调用中如果调用方指定了新的默认值就会将原来的默认值覆盖。如果调用方没有指定新的默认值那就会使用原来的默认值。07. 访问类中的私有方法大家都知道类中可供直接调用的方法只有公有方法(protected类型的方法也可以但是不建议)。也就是说类的私有方法是无法直接调用的。这里先看一下例子class Kls():def public(self): print( Hello public world! )def __private(self): print( Hello private world! )def call_private(self):self.__private()ins Kls()# 调用公有方法没问题ins.public()# 直接调用私有方法不行ins.__private()# 但你可以通过内部公有方法进行代理ins.call_private()既然都是方法那我们真的没有方法可以直接调用吗当然有啦只是建议你千万不要这样弄这里只是普及让你了解一下。# 调用私有方法以下两种等价ins._Kls__private()ins.call_private() 08. 时有时无的切片异常这是个简单例子my_list [1, 2, 3, 4, 5]print(my_list[5]) 执行一下和我们预期的一样会抛出索引异常。Traceback (most recent call last):File F:/Python Script/test.py, line 2, in module print(my_list[5])IndexError: list index out of range 但是今天要说的肯定不是这个而是一个你可能会不知道的冷知识。来看看如下这种写法就不会报索引异常执行my_list[5:]会返回一个新list[]。my_list [1, 2, 3]print(my_list[5:]) 09. 哪些情况下不需要续行符在写代码时为了代码的可读性代码的排版是尤为重要的。为了实现高可读性的代码我们常常使用到的就是续行符 。 a talk is cheap, ... show me the code. print(a)talk is cheap,show me the code.那有些情况下是不需要写续行符的呢经过总结在这些符号中间的代码换行可以省略掉续行符[],(),{} my_list[1,2,3,... 4,5,6] my_tuple(1,2,3,... 4,5,6) my_dict{name: MING,... gender: male}另外还有在多行文本注释中 续行符也是可以不写的。 text talk is cheap,... show me the code 上面只举了一些简单的例子。但你要学会举一反三。一样的在以下这些场景也同样适用类和函数的定义。列表推导式字典推导式集合推导式生成器表达式10. Py2 也可以使用 print()我相信应该有不少人思维定式觉得只有 Py3 才可以使用 print()而 Py2 只能使用print 。今天小明要为 Py2 正名一次。在Python 2.6之前只支持print hello在Python 2.6和2.7中可以支持如下三种print helloprint(hello)print (hello)在Python3.x中可以支持如下两种print(hello)print (hello)▼往期精彩回顾▼【Python应用】素质自动修正-thef***为什么要学编程让她们给你答案……【Python妙招】如何去除Django警告信息