之前我们所说的都是读写真正的文件。其实我们也可以在内存中虚拟一个文件进行读写。Python给咱们提供的官方module有io.StringIO和io.BytesIO.io.StringIOString IO用于在内存在读写字符串。StringIO可以传入一个字符初始化。例如string = StringIO("This is Demo")例如:from io import StringIOs = StringIO() s.write("Yes\nYEs") s.seek(0) # 将指针拨回到开始位置,否则将会读取不到任何东西content = s.read() print contentS...
我们在编写多线程程序的时候,往往会遇到两种类型的变量。一种是全局变量,多个线程共享。为了避免改乱为,我们在前面已经提到说要加锁。一种是局部变量。仅供一个线程使用,线程间相互不影响。例如下列程序中task()函数中定义的count变量就是局部变量。即使我们创建了两个线程,两者的count递增也不会相互影响,因为count是在task中定义的。import threadingdef task():count = 0for i in range(1000):count += 1print countif __...
Python介绍发展史Python 2 or 3?一、 Python介绍 python的创始人为吉多范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 最新的TIOBE排行榜,Python赶超PHP占据第五, Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众...
字符串可以用单引号 (...) 或双引号 ("...") 标识 。 \ 可以用来转义引号;情形一: 如果字符串中只有单引号而没有双引号,就用双引号引用,否则用单引号引用。 比如要打印: doesnt: >>>"doesnt" "yes",he said >>>"yes",he said 或者,使用转义符号 \ doesnt: >>>doesn\t "yes",he said >>>"\"yes\",he said "情形二: 前面带有\的字符被当成了特殊字符...
Guibs 的 Python学习_字符串# 字符串# Python 中, 用引号括起来的都是字符串. 引号可以是单引号, 也可以是双引号"This is a string"This is also a string # 因而可以在字符串中包含 " 或 I told myself, "you are Gubis""The name Guibs is my nickname" # 首字母大写指定字符串# [.title()]name = Macbook proprint(name.title()) # 全部大写指定字符串 # [.upper()]print(name.upper()) # 全部小写字符串 # [.lower()]print(nam...
Guibs 的 Python学习_数字# 数字 # 整数 # 在 Python 中, 可对整数进行加(+) 减(-) 乘(*) 除(/) 模除(%)[求余] 乘方(**) print(2 + 3) print(2 - 3) print(2 * 3) print(2 / 3) # 注: Python 2 中, 整数除法的结果只包含整数部分, 小数部分直接舍弃. 若要保留小数部分, 则运算数必须包含浮点数 print((1 + 3) % 3) print(2 ** 3) # 浮点数 print(0.1 + 0.1) # 注意: 结果包含小数位数可能是不确定的 print(0.2 + 0.1) # 0.3000000...
Guibs 的 Python 学习_变量# 变量的命名和使用 # 变量名只能包含字母、数字和下划线. [不能以数字打头] [001_send message x][send_message_001 ?]? # 变量名不能包含空格, 可以使用下划线来分割单词 [send message x][send_message ?]? # 不能将 Python 关键字和函数名用作变量名# 变量名应简短且有描述性 例如姓名: [n x][name ?]? # 注意 l 和 O 的使用, 部分字体中会与 1 和 0 混淆message = "Hello Guibs"print(message)messa...
Guibs 的 Python学习_ 函数# 函数# 函数是带有名字的代码块, 用于完成具体的工作# 定义函数 greet_userdef greet_user():# 函数体print("Hello")# 调用函数 greet_usergreet_user()# 向函数传递信息def greet_user(username): # username 是一个形参print("Hello " + username) greet_user(username=Guibs) # Guibs 是一个实参greet_user(Guibs)# 带关键字传递实参# 可以不用考虑实参传递的顺序def greet_user(username1, username...
Guibs 的 Python学习_While&Input# While And Input# input()# input() 接收一个参数: 即要向用户显示的提示或说明message = input("告诉我你想跟我说的话, 我会重复你的话~\n") print("你说: " + message)# 使用 int() 来获取数值输入age = input("你多大?\n") print(那么. 你明年 + str(int(age) + 1) + 了)# 使用 while 循环current_number = 1while current_number <= 5:print(current_number)current_number += 1# 1 2 3 4 5#...
程序中的错误处理有多种方式,一类是约定好错误码,然后根据返回的错误码来判断是否发生错误,以及错误的原因。但是这么做容易将正确的返回值和错误码混在一起,必须要写很多代码来区分,非常不方便。另外一旦出错,还需要一级一级往上报,知道有一级可以处理它。比较成熟的做法是try...except...finally...这一套错误处理机制。该机制不会干扰正常的返回值。同时也无需一级一级手动上报,而是只需要有一级捕获并处理即可。代码: ...
Guibs 的 Python学习_字典# 字典# Python 中字典是一系列键值对. # 键和值之间用 : 分隔, 键-值对之间用 , 分隔book_0 = {name: Swift, price: 22} book_1 = {name: Python, price: 22} # 访问字典中的值# 字典中的所有键print(book_0.keys() )# 字典中的所有值print(book_0.values()) # 要获取与键相关联的值, 可以依次指定字典名和放在方括号内的键 print(book_0[name] + : + str(book_0[price])) print(book_1[name] + ": " +...
Guibs 的 Python学习_If# if# if 通过缩进来控制代码块是否属于 if# if conditional_test:# do somethingcars = [audi, bmw, subaru, toyota]for car in cars: if car == bmw:print(car.upper()) else:print(car.title())# 条件测试# 每条 if 语句的核心都是一个值为 True 或 False 的表达式, 这种表达式被称之为条件测试. # 检查是否相等# [==] 在两边的值相等时返回 Trueprint("bmw" == "bmw") # 检查是否不相等# [!=...
Guibs 的 Python学习_元组# 元组# 元组相当于不可变的列表, 使用圆括号 ()dimensions = (200, 50) print(dimensions[0]) print(dimensions[1])# 遍历元组中的所有值for dimension in dimensions:print(dimension)# 修改元组变量 # 虽然不能修改元组元素, 但可以给存储元组的变量赋值. 因此, 如果要修改某个元组, 可以重新定义整个元组print(dimensions) dimensions = (400, 100) print(dimensions)以上就是Guibs 的 Python学习_元组...
Guibs 的 Python学习_列表# 列表# 列表由一系列按特定顺序排列的元素组成, 其中元素和元素之间可以没有任何关系 # 在 Python 中, 用方括号 [] 来表示列表, 并用逗号 , 分隔其中的元素 languages = [swift, "python", "objective-C"] print(languages) # 访问列表元素# 列表是有序集合, 因此要访问列表的任何元素, 只需将该元素的位置或索引告诉 Python 即可# 在 Python 中, 第一个元素的索引是0print(languages[0]) print(language...
Guibs 的 Python学习_Python 之禅The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren’t special enough to break the rules. Although practicality beats purity. Errors should never pass ...