@ 复习Python从入门到精通/明日科技编著(清华大学出版社)所记录的代码,个人记录不迷路。2023年1月23日-24日-25日
@ 序列(sequence):列表 元组 集合 字典 字符串
@ 列表和元组比较:都是序列,列表是可变序列,它的元素可随时被修改删除,元组是不可变序列;元组处理速度快,可以作为字典的索引;
@ 字典创建 {‘key1’:‘value1’,‘key2’:‘value2’}; dict(zip(list1,list2))
@ 集合创建 直接创建 set函数
# -*- coding:utf-8 -*- # 编码注释 等同于 #coding=utf8 -*- 无特殊含义,仅仅是美观
import datetime
import time
import os
import random
"""
@ 复习Python从入门到精通/明日科技编著(清华大学出版社)所记录的代码,个人记录不迷路。2023年1月23日-24日-25日
@ 序列(sequence):列表 元组 集合 字典 字符串
@ 列表和元组比较:都是序列,列表是可变序列,它的元素可随时被修改删除,元组是不可变序列;元组处理速度快,可以作为字典的索引;
@ 字典创建 {'key1':'value1','key2':'value2'}; dict(zip(list1,list2))
@ 集合创建 直接创建 set函数
"""
x3 = list(range(0, 20, 3))
x3 = x3 * 2
print("输出对象x3的类型", type(x3))
print("使用item循环输出列表元素")
for item in x3: # 循环输出元素内容
print(item, '\t', end='')
print('')
print("使用enumerate输出索引及元素内容")
for index, item in enumerate(x3): # 使用enumerate列举索引和值
print(index, '-', item, '\t', end='')
print('')
print('任意一个整数按如下规则运算后终将归于1:如是偶数除以2,否则乘以3加1')
number = []
start = True
i = int(145)
while start:
if i == 1:
break
if i % 2 == 0:
i /= 2
number.append(int(i))
else:
i = i * 3 + 1
number.append(int(i))
print(number)
number2 = [int(x * 10-1) for x in number] # 循环创建列表
print(number2)
number.sort() # ?排序无用,为何呢?? 答案:对象方法需要单独一行执行
print('采用列表对象方法sort排序', number)
number3 = sorted(number)
print('number3 = ', number3)
char = ['Hong', 'Fei', 'Yin', 'Xue']
print(char)
# print('对象方法无效', char.sort()) # ?排序无用,为何呢?? 输出结果为None 对象的方法需要单独一行执行
char.sort()
print(char)
char.reverse()
print(char)
str1 = "人生到处知何似"
str2 = "应是飞鸿踏雪泥"
str3 = "泥上偶然留指爪"
str4 = "鸿飞那复计东西"
author = " 宋. 苏轼 "
print(author[3])
mianchi = [list(str1), list(str2), list(str3), list(str4)]
print("诗句列表打印", mianchi)
print("\n---横排版---\n")
print(author)
for i in range(0, 4):
for j in range(0, 7):
if j % 7 == 0:
print("")
print(mianchi[i][j], end='')
print("\n")
print("\n---竖排版---")
mianchi.reverse()
print("诗句反转后的列表", mianchi)
for i in range(0, 7):
for j in range(0, 4):
if j == 3:
print(mianchi[j][i], " ", author[i], " ")
else:
print(mianchi[j][i], " ", end='')
print("元组示范应用", "单个元素元组创建时一定要加 , 否则是字符串类型;空元组不需要加,")
tuple1 = ("对酒当歌 人生几何") # 类型是字符串
tuple2 = ("对酒当歌 人生几何",) # 类型是元组
tuple3 = () # 类型是元组
print(type(tuple1), type(tuple2), type(tuple3))
list_random = []
list_random.append(int(5)) # 使用对象方法后不能重新命名变量名称
for i in range(1, 10):
list_random.append(random.randint(1, 100))
list_random.sort()
print(list_random)
print("课后习题一:根据输入月份数字循环输出英文月份,输入数字值超出【1-12】后自动退出程序")
print("程序bug,不能识别数字以外的输入")
list_month = ['Jan', 'Feb', 'March', 'April', 'May', 'June', 'July', 'August', 'Sep', 'Oct', 'Dec', 'Nov']
# input_month = int(input())
input_month = 19
print("输入月份的类型", type(input_month))
start = True
while start:
if 0 < input_month <= 12:
print(input_month, '对应的月份英文是:', list_month[input_month-1])
input_month = int(input())
else:
print(input_month, '不是正确的月份数字,自动退出程序')
start = False
print("课后习题二:根据列表检查用户名唯一性")
list_name = ['Jan', 'Feb', 'March', 'April', 'May', 'June', 'July', 'August', 'Sep', 'Oct', 'Dec', 'Nov']
name_check = 'yinxue'
if list_name.count(name_check) > 0: # 使用count方法统计输入用户名出现的次数,如果大于0表示用户名已被占用
print("用户名已存在,请重新输入用户名")
else:
print("用户名可以使用")
print("字典和集合示例代码")
list_h = [random.randint(1, 100) for i in range(0, 20)] # 用随机数函数创建列表
tuple_h = tuple(range(0, 40, 1))
print(list_h)
print(tuple_h)
dict_h = dict(zip(tuple_h, list_h))
for index, item in enumerate(tuple_h): # 使用元组enumerate函数比例元组索引和元素值
if index < len(dict_h): # ??如何判断索引值是否超出字典索引长度呢?
print(item, '-', dict_h.get(int(item)), '\t', end='')
print('')
set_a = {'鸿飞', '印雪', '泥上', '指爪'}
set_b = {1, 3, 5, 7, 9, 20}
set_c = set("鸿飞印雪,泥上指爪")
set_d = {'鸿飞', '那复', '计', '东西'}
set_a.add('隙中驹') # 只能添加一个元素
set_b.add('石中火')
set_c.add('梦中身')
print(set_a)
print(set_b)
print(set_a)
print(set_a | set_c)
print("Chapt_7:字符串")
"""
GB2312收纳了7445个字符。GB2312编码都由2字节构成。
GBK微软对GB2312-80扩展,利用起未使用的编码空间,收录了所有Unicode及GB13000中的汉字全部字符。GBK 亦采用双字节表示,
总体编码范围为 8140-FEFE总计 23940个码位
"""
str1 = "飞"
str1_gbk_encode = str1.encode('GBK')
str1_gb2312_encode = str1.encode('gb2312')
str1_utf8_encode = str1.encode('utf-8')
print(str1, '的GBK编码是', str1_gbk_encode)
print(str1, '的gb312编码是', str1_gb2312_encode)
print(str1, '的utf-8编码是', str1_utf8_encode)
code_utf8 = b'\xe9\xa3\x9e'
print('飞 汉字对应的十六进制编码', hex(39134))
str1_utf8_decode = code_utf8.decode('utf-8')
print('utf8解码后字符是', str1_utf8_decode)
for i in range(0, 50000):
if chr(i) == '飞':
print(i, '-', chr(i), '\t', end='')
print('')
str1 = "||||||人 生|到 处|知 |何 似,应 是|飞 鸿|踏|雪 泥|||||"
print("根据|分割字符串", str1.split('|'))
print("根据空格分割字符串", str1.split(' '))
print("检索字符串中出现|的次数:", str1.count('|'))
str2 = 'HONGFEIyinxueDuijiuDangge'
print(str2, '小写转换后', str2.lower())
print(str2, '大写转换后', str2.upper())
print(str1, '去除特殊字符后:', str1.strip('|'))
template_a = '姓名:{:<3}\t 出生日年份:{:<3} \t 去世年份:{:<3} \t 出生地:{:5} \t 出生年份16进制表示{:y>#7x} \t 月薪{:2f}'
# 不能写成 0:#x,否则报错 ValueError: cannot switch from automatic field numbering to manual field specification
print(template_a.format("苏轼", 1037, 1101, "四川眉山", 1037, 6666.88))
print("-----------------")
time_debug = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())) # 时间函数之输出标准可读日期
print("当前时间函数", datetime.datetime.now())
print(time_debug)
# 记录程序页面调试记录,调试记录保存到txt文件中
file_name_run = os.path.basename(__file__) # 获取当前运行文件的文件名
fp = open(r'E:\Yinxue\Debug_history.txt', 'a+')
print("调试时间 ", str(time_debug), "调试的文件名", file_name_run, file=fp)
fp.close()
运行结果
输出对象x3的类型
使用item循环输出列表元素
0 3 6 9 12 15 18 0 3 6 9 12 15 18
使用enumerate输出索引及元素内容
0 - 0 1 - 3 2 - 6 3 - 9 4 - 12 5 - 15 6 - 18 7 - 0 8 - 3 9 - 6 10 - 9 11 - 12 12 - 15 13 - 18
任意一个整数按如下规则运算后终将归于1:如是偶数除以2,否则乘以3加1
[436, 218, 109, 328, 164, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1]
[4359, 2179, 1089, 3279, 1639, 819, 409, 1239, 619, 309, 939, 469, 1419, 709, 2139, 1069, 3219, 1609, 4839, 2419, 1209, 3639, 1819, 909, 2739, 1369, 4119, 2059, 1029, 3099, 1549, 4659, 2329, 6999, 3499, 1749, 5259, 2629, 7899, 3949, 11859, 5929, 17799, 8899, 4449, 13359, 6679, 3339, 1669, 5019, 2509, 7539, 3769, 11319, 5659, 2829, 8499, 4249, 12759, 6379, 3189, 9579, 4789, 14379, 7189, 21579, 10789, 32379, 16189, 48579, 24289, 72879, 36439, 18219, 9109, 27339, 13669, 41019, 20509, 61539, 30769, 92319, 46159, 23079, 11539, 5769, 17319, 8659, 4329, 12999, 6499, 3249, 9759, 4879, 2439, 1219, 609, 1839, 919, 459, 229, 699, 349, 1059, 529, 1599, 799, 399, 199, 99, 49, 159, 79, 39, 19, 9]
采用列表对象方法sort排序 [1, 2, 4, 5, 8, 10, 16, 20, 23, 31, 35, 40, 41, 46, 47, 53, 61, 62, 70, 71, 80, 82, 91, 92, 94, 103, 106, 107, 109, 121, 122, 124, 137, 142, 155, 160, 161, 164, 167, 175, 182, 184, 206, 214, 218, 233, 242, 244, 251, 263, 274, 283, 310, 319, 322, 325, 328, 334, 350, 364, 377, 395, 412, 425, 433, 436, 445, 466, 479, 484, 488, 502, 526, 566, 577, 593, 638, 650, 668, 700, 719, 754, 790, 850, 866, 890, 911, 958, 976, 1079, 1132, 1154, 1186, 1276, 1300, 1336, 1367, 1438, 1619, 1732, 1780, 1822, 2051, 2158, 2308, 2429, 2734, 3077, 3238, 3644, 4102, 4616, 4858, 6154, 7288, 9232]
number3 = [1, 2, 4, 5, 8, 10, 16, 20, 23, 31, 35, 40, 41, 46, 47, 53, 61, 62, 70, 71, 80, 82, 91, 92, 94, 103, 106, 107, 109, 121, 122, 124, 137, 142, 155, 160, 161, 164, 167, 175, 182, 184, 206, 214, 218, 233, 242, 244, 251, 263, 274, 283, 310, 319, 322, 325, 328, 334, 350, 364, 377, 395, 412, 425, 433, 436, 445, 466, 479, 484, 488, 502, 526, 566, 577, 593, 638, 650, 668, 700, 719, 754, 790, 850, 866, 890, 911, 958, 976, 1079, 1132, 1154, 1186, 1276, 1300, 1336, 1367, 1438, 1619, 1732, 1780, 1822, 2051, 2158, 2308, 2429, 2734, 3077, 3238, 3644, 4102, 4616, 4858, 6154, 7288, 9232]
[‘Hong’, ‘Fei’, ‘Yin’, ‘Xue’]
[‘Fei’, ‘Hong’, ‘Xue’, ‘Yin’]
[‘Yin’, ‘Xue’, ‘Hong’, ‘Fei’]
诗句列表打印 [[‘人’, ‘生’, ‘到’, ‘处’, ‘知’, ‘何’, ‘似’], [‘应’, ‘是’, ‘飞’, ‘鸿’, ‘踏’, ‘雪’, ‘泥’], [‘泥’, ‘上’, ‘偶’, ‘然’, ‘留’, ‘指’, ‘爪’], [‘鸿’, ‘飞’, ‘那’, ‘复’, ‘计’, ‘东’, ‘西’]]
—横排版—
宋. 苏轼
人生到处知何似
应是飞鸿踏雪泥
泥上偶然留指爪
鸿飞那复计东西
当前时间函数 2023-01-26 08:17:25.221487
2023-01-26 08:17:25
进程已结束,退出代码0