美文网首页python相关
10. Python的补充内容

10. Python的补充内容

作者: edwin1993 | 来源:发表于2018-03-27 18:36 被阅读0次
sys模块

sys.argv 为例
sys.argv列表包含命令行参数

import sys

if len(sys.argv) < 2:
    print ('Nso action specified.')
    sys.exit()
    
if sys.argv[1].startswith('--'):
    option = sys.argv[1][2:]
    if option == 'version':
        print( 'Version 1.2')
    elif option == 'help':
        print('--version or --help ')
    else:
        print ('Unknown option.')
        
    sys.exit()
else:
    print('argvs should be --version or --help')

在sys.argv列表中总是至少有一个项目。它就是当前运行的程序名称,作为sys.argv[0],其他的命令行参数在这个项目之后。

os模块

这个模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。

  • os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。
  • os.getenv()和os.putenv()函数分别用来读取和设置环境变量。
  • os.listdir()返回指定目录下的所有文件和目录名。
  • os.remove()函数用来删除一个文件。
  • os.system()函数用来运行shell命令。
import os
# 在cmd中执行ping www.baidu.com
os.system("ping www.baidu.com ")
单语句块

语句块是通过它的缩进层次与其它块区分开来的。然而这在大多数情况下是正确的,但是并非100%的准确。如果你的语句块只包含一句语句,那么你可以在条件语句或循环语句的同一行指明它。

flag = True
if flag: print 'Yes'
列表综合

在很多时候,我们都是使用循环来处理列表中的每一个元素,而使用列表综合可以用一种更加精确、简洁、清楚的方法完成相同的工作 。

listone = [2, 3, 4]
listtwo = [2*i for i in listone if i > 2]
在函数中接收元组和列表

当要使函数接收元组或字典形式的参数的时候,有一种特殊的方法,它分别使用 * 和 ** 前缀。这种方法在函数需要获取可变数量的参数的时候特别有用。

def sumUp(*args):
    totle = 0
    for i in args:
        totle += i
    return totle
    
print(sumUp(1,2,3,4,5))

# 结果
15

由于在args变量前有 * 前缀,所有多余的函数参数都会作为一个元组存储在args中。如果使用的是 ** 前缀,多余的参数则会被认为是一个字典的键/值对。

def fun(**args):
    print(args)

fun(num1 = 1, num2 = 2)

# 结果
{'num1': 1, 'num2': 2}
lambda形式

lambda语句被用来创建新的函数对象,并且在运行时返回它们。
编程中提到的 lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。

#将一个 list 里的每个元素都平方:
map( lambda x: x*x, [y for y in range(10)] )

#这个写法要好过
def sq(x):
    return x * x

map(sq, [y for y in range(10)])
exec语句

exec语句用来执行储存在字符串或文件中的Python语句。

exec('print (\'123\')')
eval语句

eval语句用来计算存储在字符串中的有效Python表达式

eval('2*3')
assert语句

assert语句用来声明某个条件是真的。例如,如果你非常确信某个你使用的列表中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么assert语句是应用在这种情形下的理想语句。当assert语句失败的时候,会引发一个AssertionError。

li  = [1,2,3,4]
assert len(li) >=4
li.pop()
#下句会引发error
assert len(li) >=4
  1. 可以在预计正常情况下程序不会到达的地方放置断言 :assert false
  2. 断言可以用于检查传递给私有方法的参数。(对于公有方法,因为是提供给外部的接口,所以必须在方法中有相应的参数检验才能保证代码的健壮性)
  3. 使用断言测试方法执行的前置条件和后置条件
  4. 使用断言检查类的不变状态,确保任何情况下,某个变量的状态必须满足。(如age属性应大于0小于某个合适值)

不要使用断言语句去修改变量和改变方法的返回值

repr函数

repr函数用来取得对象的规范字符串表示。反引号(也称转换符)可以完成相同的功能。repr函数和反引号用来获取对象的可打印的表示形式。你可以通过定义类的__repr__方法来控制你的对象在被repr函数调用的时候返回的内容。

>>> dict = {'runoob': 'runoob.com', 'google': 'google.com'};
>>> repr(dict)
"{'google': 'google.com', 'runoob': 'runoob.com'}"

相关文章

  • 10. Python的补充内容

    sys模块 sys.argv 为例sys.argv列表包含命令行参数 在sys.argv列表中总是至少有一个项目。...

  • 常用正则表达式

    正浮点数不匹配类似01、10.0、10.、10.10这样的值 待补充

  • 补充内容

    JDK目录介绍 bin目录:该目录用于存放一些可执行程序,如javac.exe(Java编译器)、Java.exe...

  • 就业班第二周总结

    简单梳理了一下MySQL,Python还有pandas的内容,有些细节再慢慢调整和补充

  • 一 json

    /** * Created by chaozhang on 2017/12/10. * 内容介绍:讲解json的 ...

  • python补充

    一、py中内置的专门用来处理事件的标准库模块 该模块下有一个叫做:datetime的类,这个类提供各种时间操作的方...

  • 《零基础上手Python爬虫系列》 - 01 入门导学

    本篇主要介绍Python的特性、优缺点、前景以及课程的概要。主体内容为学习笔记的整理、补充和完善,持续更新。 关于...

  • python函数整理

    python函数整理: 数学函数: abs(x):返回数字的绝对值;如abs(-10)返回10. ceil(x):...

  • 用Python控制自动发邮件

    python自动批量发邮件 稍后补充

  • Python 快速教程(补充篇)

    注:采转归档,自己学习查询使用 Python 快速教程(补充篇01): Python的序列的方法Python 快速...

网友评论

    本文标题:10. Python的补充内容

    本文链接:https://www.haomeiwen.com/subject/kcmscftx.html