本文共 7259 字,大约阅读时间需要 24 分钟。
好久没有练习过Python的代码了,最近要开始写界面了,所以简要复习了一下。
"""1.编码问题"""# 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串print("你好,Python")
""" 2.关键字 """import keywordcount = 0for i in keyword.kwlist: print(i, end=' ') # 关键字之间以空格作为分割 count += 1 if count % 10 == 0: # 控制每行输出10个关键字 print(end='\n')
"""3.复数"""number1 = 3number2 = 4temp = complex(number1, number2)print(temp)print("{0}的实部和虚部分别为{1},{2}".format(temp, temp.real, temp.imag))
"""4.除法运算"""a = 10b = 3print("{0}除以{1}等于{2}".format(a, b, a/b)) # /返回浮点型print("{0}整除{1}等于{2}".format(a, b, a//b)) # //为整除运算a = 20.9print("{0}整除{1}等于{2}".format(a, b, a//b)) # //分子或者分母至少有一个是浮点数,结果为浮点数b = 2print("{0}除以{1}等于{2}".format(a, b, a/b))
"""5.常用数学函数"""import math# 绝对值函数 abs() 是内置函数 还可以用在复数中print("abs(3+4j)=", abs(3+4j))# fabs() 函数在 math 模块中定义 只对浮点型跟整型数值有效print("math.fabs(-10)=", math.fabs(-10))# 上入整数print("math.ceil(-4.3)=", math.ceil(-4.3))# 下舍整数print("math.floor(4.3)=",math.floor(4.3))# e的x幂print("math.exp(1)=", math.exp(1))# 对数print("math.log(100, 10)", math.log(100, 10))print("math.log10(1000)=", math.log10(1000))# 最大最小值print("max('a', 'A')=", max('a', 'A'))print("min(10, 20)=", min(10, 20))# 幂函数print("pow(2, 3)=", pow(2, 3))# 平方根print("math.sqrt(9.0)=",math.sqrt(9.0))# 返回整数与小数部分print(math.modf(10.8), math.modf(10.8)[0], math.modf(10.8)[1])
"""6.随机数函数"""import random# 随机生成的一个实数,它在[0,1)范围print("random:", random.random() * 21 + 100) # # 实现 100-120 随机小数# random integer in range [a, b], including both end pointsprint("randint:", random.randint(3, 7))# Get a random number in the range [a, b) or [a, b] depending on roundingprint("uniform:", random.uniform(100, 105))# Choose a random element from a non-empty sequence# 从0到9中随机挑选一个整数print("choice:", random.choice(range(10)))
"""7.help()函数"""help(print) # 查看print定义
"""8.列表推导式"""# [表达式 for 变量 in 列表]# [表达式 for 变量 in 列表 if 条件]li = [1, 2, 3, 4, 5, 6, 7, 8, 9]print([x**2 for x in li])print([x**2 for x in li if x>5])print(dict([(x, x*10) for x in li]))print([(x, y) for x in range(10) if x % 2 if x > 3 for y in range(10) if y > 7 if y != 8])print([x*y for x in [1, 2, 3] for y in [1, 2, 3]])
"""9.列表的复制"""# 通过切片的方式复制 两个列表,即重新开辟了空间# 通过=复制 一个列表# 通过copy() 两个列表my_foods = ['pizza', 'falafel', 'carrot cake']# friend_foods = my_foods[:]# friend_foods = my_foodsfriend_foods = my_foods.copy()print("My favorite foods are:")print(my_foods)print("\nMy friend's favorite foods are:")print(friend_foods)my_foods.append('cannoli')friend_foods.append('ice cream')print("My favorite foods are:")print(my_foods)print("\nMy friend's favorite foods are:")print(friend_foods)
"""10.创建二维列表"""# 行 Row 列 Columnlist_2d = [[0 for col in range(2)] for row in range(3)]print(list_2d)
"""11.元组"""# 创建tup1 = ()tup2 = (5,) # 只有一个元素时需要加上逗号
"""12.集合:无序的不重复元素序列"""# 创建 :可以使用大括号 { } 或者 set() 函数创建集合,创建一个空集合必须用 set() 而不是 {}a = set('abracadabra')b = set('alacazam')print("集合a:", a)print("集合b:", b)# 集合间运算print("a - b:", a - b) # 在a不在bprint("a | b", a | b) # 或者在a或者在bprint("a & b", a & b) # 同时在a和bprint("a ^ b", a ^ b) # 不同时在a和b
# 13.Fibonacci series: 斐波纳契数列# 两个元素的总和确定了下一个数a, b = 0, 1while b < 10: print(b, end=' ') # 以空格分隔每个数 a, b = b, a+b # 先计算=右边的表达式,然后同时赋值给左边对应的变量
"""14.range()"""# help(range)# range(start, stop[, step]) -> range object# Return an object that produces a sequence of integers from start (inclusive)to stop (exclusive) by step.for i in range(5): # 默认从0开始 print(i, end=' ')print()for i in range(5, 10): # 左闭右开区间 print(i, end=' ')print()for i in range(5, 10, 2): # 第三个参数表示步长 print(i, end=' ')print()# 创建一个列表list1 = list (range(5))print("列表:", list1)# 遍历序列a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']for i in range(len(a)): print(i, a[i])
"""15.enumerate 函数"""# enumerate(iterable[, start]) -> iterator for index, value of iterable# enumerate is useful for obtaining an indexed list:(0, seq[0]), (1, seq[1]), (2, seq[2]), ...sequence = [12, 34, 34, 23, 45, 76, 89]for i, j in enumerate(sequence): print(i, j, sep=":", end=" ")
# 16.函数返回值def fun(a, b): """返回多个值,结果以元组形式表示""" return a, b, a + bprint(fun(1, 2))
"""17.字典的遍历"""# 使用items()knights = {'gallahad': 'the pure', 'robin': 'the brave'}for k, v in knights.items(): # 关键字和对应的值可以使用 items() 方法同时解读出来 print(k, v)# 使用zip()questions = ['name', 'quest', 'favorite color']answers = ['lancelot', 'the holy grail', 'blue']for q, a in zip(questions, answers): # 同时遍历两个或更多的序列,可以使用 zip() 组合 print('What is your {0}? It is {1}.'.format(q, a))# 使用reversed()for i in reversed(range(1, 10, 2)): print(i, end=" ")print()# 使用sorted()basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']for f in sorted(set(basket)): # 排序 print(f, end=" ")
"""18.模块的使用"""# 模块是一个包含所有用户定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能import sysprint('命令行参数如下:')for i in sys.argv: # 从程序外部向程序传递参数 print(i, end=' ')print('\nPython 路径为:', sys.path, '\n') # 获取指定模块搜索路径的字符串集合
"""19.__name__"""# 每个模块都有一个__name__属性,当其值是'__main__'时,表明该模块自身在运行,否则是被引入if __name__ == '__main__': print('程序自身在运行')else: print('我来自另一模块')
"""20.文件读写"""f = open("temp.txt", "a") # 追加形式打开文件,文件不存在时会创建f.write("今天是2018年12月11日,现在是21点24分") # 写入文件f.close() # 关闭文件f = open("temp.txt", "r")str_read = f.read() # 读取文件print("read:", str_read)f.close() # 关闭文件
"""21.with关键字:结束后,会争取关闭文件"""with open("temp.txt", "r") as f: str_read = f.read()f.close()
"""22.pickle模块序列化操作:将程序中运行的对象信息保存到文件中去,永久存储反序列化操作:我们能够从文件中创建上一次程序保存的对象"""import pickledata = ['aa', 'bb', 'cc']# dump 将数据通过特殊的形式转换为只有python语言认识的字符串,并写入文件with open("pickle.pk", 'wb') as f: pickle.dump(data, f)# load 从数据文件中读取数据,并转换为python的数据结构with open("pickle.pk", 'rb') as f: data2 = pickle.load(f) print(data2)
"""23.异常处理"""def divide(x, y): try: result = x / y except ZeroDivisionError: print("division by zero!") else: # try字句没有发生异常时执行 print("result is", result) finally: # 无论是否发生异常,均执行finally字句 print("executing finally clause")divide(10, 5)divide(10, 0)
"""24.类的定义和使用"""class People: # People 类 name = '' age = 0 __weight = 0 # 两个下划线开头,声明该属性为私有 # 类方法必须包含参数 self,且为第一个参数,self 代表的是类的实例 def __init__(self, name, age, weight): # 定义构造函数 self.name = name self.age = age self.__weight = weight def speak(self): print("调用People类的speak方法") print("{0}说:我今年{1}岁。".format(self.name, self.age))class Speaker: # Speaker 类 topic = '' name = '' def __init__(self, topic, name): # 定义构造函数 self.topic = topic self.name = name def speak(self): print("调用Speaker类的speak方法") print("我是{0},我今天演讲的主题是{1}".format(self.name, self.topic))# 类的单继承,Student类继承People类class Student(People): grade = '' # 定义子类的构造函数 def __init__(self, name, age, weigth, grade): People.__init__(self, name, age, weigth) # 调用父类的构造方法 self.grade = grade # 覆盖父类的方法 def speak(self): print("调用Student类的speak方法") print("{0}说:我今年{1}岁,我在读{2}年级。".format(self.name, self.age, self.grade))# 类的多继承class Sample(Speaker, Student): def __init__(self, name, age, weight, grade, topic): Student.__init__(self, name, age, weight, grade) Speaker.__init__(self, topic, name)s = Student('lh', 21, 45, 4)s.speak()test = Sample("tim", 23, 90, 4, "Python")test.speak() # 方法名同,默认调用的是在括号中排前地父类的方法
Pycharm
1.调整tab键为4个空格
2.设置命令行参数
转载地址:http://nayni.baihongyu.com/