# coding: UTF-8 from exercise.common import show_title # class # __foo__: 定义的是特殊方法,一般是系统定义名字 ,类似 __init__() 之类的。 # # _foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import * # # __foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。 show_title('类的处理') class BaseUser: __version = 1.0 # 定义一个私有变量 def __init__(self, oid): self._id = oid def __str__(self): return "用户id=%s %s" % (self._id, BaseUser.__version) class DbUser(BaseUser): _name = None def __init__(self, oid, name): # BaseUser.__init__(self, oid) super().__init__(oid) self._name = name # 属性的定义
# coding: UTF-8 import sys from functools import reduce from exercise.common import show_title # lambda show_title('lambda') add_method = lambda x, y: x + y print(add_method(1, 2)) data = list(range(100)) # filter过滤数据方法 sdata = list(filter(lambda x: x < 40 and x > 30, data)) print(sdata) # map方法 mapdata = map(lambda x: x + 2, sdata) listdata = list(mapdata) print("list(mapdata)=", listdata) # 对于打印输出的lambda lprint = lambda x: sys.stdout.write(x + '\n') lprint("lambda x: sys.stdout.write(x+'\\n')") # reduce方法 # 从左到右对一个序列的项累计地应用有两个参数的函数,以此合并序列到一个单一值 res = reduce(lambda x, y: x + y, listdata, 0) print(res)
from exercise.common import show_title # 内置函数 show_title('内置函数') print("__import__()", '内置的导入函数') print("abs()", '计算绝对值', abs(-123)) print("all()", '所有的迭代之都=True') print("any()", '任何=True,则返回True') print("ascii()", '返回ascii码') print("bin()", '转换二进制') print("bool()", '转换bool类型') print("bytearray()", '转换bytearray') print("bytes()", '转换bytes') print("callable()", '返回True如果对象参数出现可调用, False如果没有。') print("chr()", '返回表示其Unicode代码点是整数i的字符的字符串') print("classmethod()", '返回函数的类方法') print("compile()", '将源代码编译为代码或AST对象。代码对象可以由exec()或执行eval()') print("complex()", '返回值为real + imag * 1j的复数') print("delattr()", '删除属性值') print("dict()", "转换字典", dict({'a': 1, 'b': 2})) print("dir()", '查询对象的方法、属性') print("divmod()", '函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)') print("enumerate()", '返回枚举对象') print("eval()", '运行程序代码') print("exec()", '执行外部程序') print("filter()", '过滤数据,filter(function,iterable )') print("float()", '转换float') print("format()", '格式化数据,一般转换为对象的format函数调用') print("frozenset()", '返回一个新的frozenset对象') print("getattr()", '返回属性值') print("globals()", '返回所有的全局对象')
# coding: UTF-8 import exercise.common as comm import exercise.lang as lang import exercise.function import exercise.statement import exercise.collection import exercise.testclass import exercise.testdatetime import exercise.testlamda print('\n' * 2) comm.show_title('Main运行程序') print('lang version=', lang.version) print(lang.__doc__) if __name__ == '__main__': print('运行主程序')
# coding: UTF-8 import os.path as path import os from exercise.common import show_title # 文件处理 show_title('文件处理') def viewfile(filename): with open(filename) as f: print(f.read()) def view_lines(filename): with open(filename) as f: i = 1 for line in f: print(i, ' ', line.rstrip()) i += 1 # 重新读取文件 f.seek(0) lines = f.readlines() func = lambda txt: 'http' in txt res = filter(func, lines) for x in list(res): print(x.strip()) # 文件系统扫描处理 def print_files(path):
# coding: UTF-8 """ 这种形式对应__doc__,可以使用内置的帮助来展现 关于Python语言的基础知识 """ # 全局的变量 import math from exercise.common import show_title version = 1.0 # 数字的处理常用用法 # 在3.0中不用在使用L结尾的标识长整型 show_title('数字的处理') nums = [] nums.append(123) nums.append(123) nums.append(123.23) nums.append(123e2) nums.append(0x123) nums.append(0b1010) # 二进制 nums.append(0o67010) # 八进制 nums.append(3 + 4j) # 复数 for num in nums: print(" - ", num) print("12的平方= %d" % 12**2) print("13/3= {}".format(13 / 3)) print("13//3地板除法= {}".format(13 // 3)) # floor除法 print("13%3= {}".format(13 % 3)) print("round(13/3,2)= {}".format(round(13 / 3, 2))) print("math.ceil(13/3)= {}".format(math.ceil(13 / 3)))
# coding: UTF-8 from exercise.common import show_title import mysql.connector from mysql.connector import errorcode import time # Mysql数据库操作 show_title('Mysql数据库操作') print('安装驱动:pip3 install mysql-connector-python') def queryData(conn): cursor = conn.cursor() try: cursor.execute("select * from wp_config;") r = list() for r in cursor: row = dict(zip(cursor.column_names, r)) print(row['id'], '%-30s' % row['name'], '%-30s' % row['title']) except mysql.connector.Error as e: print('query error!{}'.format(e)) finally: cursor.close() def query_data(cnx): cr = cnx.cursor() cr.execute('select * from wp_config limit 2') values = cr.fetchall() for r in values: print(r) cr.close()
# coding: UTF-8 import time import datetime import calendar from exercise.common import show_title # time show_title('日期和时间的处理') ticks = time.time() now = time.localtime(ticks) print("当前时间戳为:", ticks, time.timezone) print("当前时间元组:", now, time.tzname) print("当前时间:", time.asctime(now), 'CLock=', time.clock()) print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) cal = calendar.month(2018, 3) print("以下输出2016年1月份的日历:") print(cal) i = datetime.datetime.now() print("当前的日期和时间是 %s" % i) print("ISO格式的日期和时间是 %s" % i.isoformat()) print("当前的年份是 %s" % i.year) print("当前的月份是 %s" % i.month) print("当前的日期是 %s" % i.day) print("dd/mm/yyyy 格式是 %s/%s/%s" % (i.day, i.month, i.year)) print("当前小时是 %s" % i.hour) print("当前分钟是 %s" % i.minute) print("当前秒是 %s" % i.second) print("当前 %s" % i.strftime('%Y-%m-%d %H:%M:%S')) d = datetime.datetime.strptime('2017-1-1 12:43:23', '%Y-%m-%d %H:%M:%S')