世界上没有比爱更艰难的事情了。
《霍乱时期的爱情》,加西亚·马尔克斯
# Python的数据类型
变量在使用的时候,不需要声明具体的数据类型,解释器会根据变量的值,自动判断数据类型。
# Number
Number包括:int, float, Decimal, Fraction, complex number. 对于除法: 在Python3中,如果只想取整,则使用"//",如果想要保留小数部分,则使用"/"。 例:4 / 5 = 0.8, 4 // 5 = 0 在Python2中,如果只想取整,则使用"/"或"//",如果想要保留小数部分,则为除数或被除数添加一个".0"。 例:4 / 5 = 0, 4 // 5 = 0, 4 / 0.5 = 0.8, 4.0 / 5 = 0.8 对于乘方: 可以使用两个"*"号表示(**)。 例:5 ** 2 = 25 对于分数: 可以使用Fraction(分子, 分母)实例化一个分数对象。 例:
from fractions import Fraction
Fraction(1, 3) + Fraction(1, 3)
结果输出为:Fraction(2, 3) 对于复数: 可以使用j或J来表示。 例如:1+1j
# String
# ''和""
字符串可以放在单引号或者双引号中,不影响结果。
# \和r
""表示转义,可以保证""后面的单个字符保持原样输出,不会被解释为其它含义。"r"表示raw,也用来显示字符串原本的内容,防止其中的某些字符被解释器解释为其它含义。 例: print('what's your name?') print(r'c:\test\name') 第一句中的第二个单引号如果不转义,则会导致与第一个单引号形成闭合,引发语法错误。 第二句,如果不使用“r”显示字符串原本的内容,则会使"\t"和"\n"成为制表符和换行符。
# '''...'''和"""..."""
显示多行字符字符串常量
# +和*
"+"和""可以用来操作字符串。"+"可以用来连接,""可以用来重复。 例: "i" + 3 * "love" 输出: "ilovelovelove"
# indexing和slicing
字符串可以像操作数组般获取对应位置的字符。 例: word = "Python" indexing: word[0]  :# 输出'P' word[5]  :# 输出'n' word[-1]  :# 输出'n' word[-6]  :# 输出'P' slicing: word[0:2]  :# 输出'Py' word[:]  :# 输出'Python' word[:2] + word[2:]  :# 输出'Python' word[:2]  :# 输出'Py' word[-2:]  :# 输出'on' word[:-2]  :# 输出'Pyth'
# 其它
字符串常量不可变。 例: word = "Python" word[0] = "J" 解释器报错
# len()
返回字符串串长度 例: word = "Python" len(word) 输出:6
# List
List是有序的。 List不同于String,List中的元素可以修改。 例: test = [1, 2, 3] test[2] = [5] print(test) 输出:[1, 2, 5] List之间可以进行"+"的操作。 例: test = [1, 2, 3] x = [3, "hi"] test + x 输出:[1, 2, 3, 3, 'hi'] List当中的元素可以是相同类型,也可以是不同类型。 例: test = [1, 2, 3] testmore = [1, "hello"] 两者都不会出错 List支持嵌套 例: test = [[1, 2, 3], ["a", "b", "c"]]
# indexing,slicing和len
支持类似于String类型的索引,切片和len()。 在使用切片的过程中也可以修改对应位置的值。 例: test[2:5] = ["a", "b", "c"]
# append
例: test = [1, 3, 5] test.append(7) print(test) 输出:[1, 3, 5, 7]
# reverse
例 test = [1, 3, 5] test.reverse() print(test) 输出:[5, 3, 1]
# Tuple
Tuple是有序的。 新建元组,例: test = 1, 2 a = 1, # 注意此处的","不可省略,否则就变成简单的变量赋值操作了。 b = (1, 2, 3) c = () 元组支持indexing, slicing和len(). 元组之间可以使用"+"。 例: a = (1, 2) b = (3, 4) a + b 输出:(1, 2, 3, 4) 元组不可变,但是元组内部如果嵌套了可变的数据类型,则嵌套的数据类型仍然可变。 例: test = [1, 2, 3, ["a", "b"]] test[0] = 1 # 报错 test[3][0] = "x" # 正确 print(test) 输出:test = [1, 2, 3, ["x", "b"]]
# Sets
Set是无序的,内部元素具有互异性。 支持集合的相关操作。 新建集合,例: a = set() b = {"x", "y", "z"} c = {"m", "n", "y"} d = set("xyz") # print(d) 输出为 {'x', 'y', 'z'} b - c # {'x', 'z'} b | c # {'x', 'z', 'm', 'n', 'y'} b & c # {'y'} b ^ c # {'x', 'z', 'm', 'n'}
# Dictionary
新建字典,例: test = {'a': 'apple', 'b': 2017} test['a'] test['a'] = "orange" test['c'] = "hello world" a = dict([('a', 'apple'), ('b', 2017), ('c', 'hello world')]) b = dict(a='apple', b=2017) 元素删除,例: del test['a'] 字典,键的操作,例: list(test.keys()) sorted(test.keys()) "a" in test
参考资料: