• Python中的with关键字使用方法?

    写作不易,资瓷一下呗!个人博客:https://raycoder.me 本文首发于Ray's Blog Python中有一种操作叫做打开文件,代码如下: >>> f = open('/foo/bar.txt', 'r') >>> data = f.read() >>> f.close() >>> data 'Hello World!' 这样,你就从/foo/bar.txt这个文本文件中读取到了它的文本:Hello World! 但是,这样处理有一些问题: 可能在处理完文本后忘记关闭文件? 可能在读取时出现错误? 这时,try...except...finally...语句就派上了用场: try: f = open('/foo/bar.txt', 'r') except: print('Fail to open /foo/bar.txt') exit(-1) finally: f.close() 虽然这段代码运行良好,但是太冗长了。 这时...

    01-04-20
  • Python中的yield关键字分析:一个Generator

    写作不易,资瓷一下呗!个人博客:https://raycoder.me 本文首发于Ray's Blog 我们先来康一段代码: >>> def count(n): for i in range(1, n+1): print(i) >>> count(5) 1 2 3 4 5 这一小段代码执行了计数,输出了1-5。 不过,有时我们会有一些想♂FA,想要每次获取下一个数,如第一次执行时给你返回1,第二次返回2,第三次返回3……如此如此。 你可能会这么做: >>> n = 0 >>> def addone(): global n n+=1 print(n) >>> addone() 1 >>> n 1 但这样又暴露了一个缺点:我们使用了一个全局变量。想要避免这种缺点又要实现计数的功能,yield就派上用场了。 想要实现G...

    27-03-20
  • Python学习笔记之assert关键字简析

    什么是assert?它的中文名叫做断言。我们先来看一个简单的例子: age = int(input()) if age>=18: print('You can watch it!') else: print('You are too young!') 这个例子进行了一下18G操作,没有达到18岁的人会被拒之门外友善的提示。 不过,我们可以通过assert关键字来实现同等的操作。 >>> age = int(input()) 17 >>> assert age >= 18 Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> assert age >= 18 AssertionError age = int(input()) try: assert age >= 18 print('You can watch it!') except AssertionError: print('You are too young!') 这只是一个简单的例子,assert还可以进行更复杂的操作。 引用一段菜鸟教程。 assert的语法格式如下: assert expression 等价于: if not expression: raise AssertionError assert后面也可以紧跟参数: assert expression...

    18-03-20
  • Python学习笔记之exec()函数简析

    exec()函数的作用:动态执行python代码。也就是说exec()可以执行复杂的python代码,而不像eval()函数那样只能计算一个表达式的值。 【转】https://www.jianshu.com/p/3cf0a649e7bc 举一个简单的小例子,代码如下: >>> i = 12 >>> j = 13 >>> exec("answer=i*j") >>> print("Answer is %s"%answer) Answer is 156 这表明第三句的exec()函数能够正确地执行Python代码,并且能将计算结果赋予answer变量,就像真正的Python代码一样。 那么,我们能不能让exec()函数执行一...

    06-03-20
  • Python学习笔记之eval()函数简析

    一个最基本的eval()函数的格式应该如下: >>> command = 'print(\'Hello world!\')' >>> eval(command) Hello world! 没错,eval函数是一个可以让字符串转换为表达式的内置函数(注意eval()不支持任何形式的赋值操作,而不能是复杂的代码逻辑)。 eval()函数不仅可以执行代码,还可以作如下操作: >>> eval('[1, 2, 3]') #字符串转列表 [1, 2, 3] >>> eval('(1, 2, 3)') #字符串转元组 (1, 2, 3) >>> eval('{"one": 1, "two": 2, "three": 3}') #字符串转字典 {'one': 1, 'two': 2, 'three': 3} >>> eval('0o187') 0o187 eval()函数的完整格式如下: eval(expression[, globals[, locals]]) expression: 表达式。 globals: 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。 locals: 变量作用域,局...

    05-03-20