• Python基础复习【第一弹】【黑马】


    本篇是观看b站黑马视频所做的笔记第一弹,为1-98节。

    b站-黑马Python

    1. # 1.Hello World
    2. print("Hello World")
    3. # 2.字面量 在代码中,被写下来固定的值
    4. # 3.字符串
    5. print("python")
    6. # 4.单行注释 # 多行注释""" """
    7. # 5.type()获得类型
    8. str_type = type("python")
    9. print(str_type) #
    10. # 6.类型转换
    11. tmp1 = 1
    12. print(int(tmp1))
    13. print(float(tmp1))
    14. print(str(tmp1))
    15. print(int(11.56))#丢失精度
    16. # 7.标识符,英文,中文,下划线,数字,内容限定,大小写敏感,不可使用关键字
    17. # 8.Python大小写敏感
    18. # 9.加减乘除+-*/ 取余% 取整除// 指数**
    19. # 10.'s' "s" """s"""都是可以定义字符串 对于""""""有等号就是字符串
    20. # 11.转义字符 \
    21. print("\"str")
    22. # 12.字符串拼接 +
    23. # 13.占位符 %s %d %f %5.2f 代表宽度为5小数点后面为2
    24. var1 = "s1"
    25. var2 = "s2"
    26. message = "两个变量为%s和%s" % (var1,var2)
    27. print(message)
    28. # 14.快速占位
    29. var3 = 'sss'
    30. var4 = '333'
    31. print(f"不会做精度控制快速占位{var3}{var4}")
    32. # 15.表达式的格式化
    33. print("1*2的结果是:%d" % (1*2))
    34. print(f"1*2的结果是:{1*2}")
    35. # 16.输入
    36. #name = input("请输入信息") 默认都是字符串
    37. # 17.布尔类型bool
    38. print(f"3大于5吗{3 > 5}")
    39. # 18.比较运算符 == != > < >= <=
    40. # 19.if语句 if(): // if(): else: // if(): elif: else:
    41. # 20.循环语句 while i < 0:
    42. # 21.随机数
    43. import random
    44. num = random.randint(1,10)#产生1~10中的一个数
    45. # 22.print不换行 print()空就是一个换行
    46. print('Hello', end = '')
    47. # 23.字表符 \t 进行对齐
    48. # 24.输出九九乘法表
    49. print("")
    50. #第一种方法
    51. i = 1
    52. while i <= 9:
    53. j = 1
    54. while j <= i:
    55. print(f"\t{j}*{i}={j*i}", end = '')
    56. j += 1
    57. i += 1
    58. print("")
    59. print("")
    60. #第二种方法
    61. for i in range(9):
    62. for j in range(i+1):
    63. print("\t%d*%d=%d" % (j+1,i+1,(i+1)*(j+1)), end ='')
    64. print("")
    65. # 25.for循环
    66. name = 'ForwardSummer'
    67. for i in name:
    68. print(f"{i},",end = '')
    69. # 26.range() 左开右闭 可加步进
    70. # 27.continue跳过本次循环 break跳过所有循环
    71. # 28.len()函数
    72. # 29.函数定义,函数参数,返回值, 返回None
    73. print()
    74. def DefineF(x):
    75. return "这是一个函数"
    76. print(DefineF(1))
    77. # 30.函数注释,在函数体中使用多行注释来进行函数注释
    78. def DefineY(x):
    79. """
    80. :param x:
    81. :return:
    82. """
    83. return "这是一个函数"
    84. # 31 列表基础 长度可变 可修改
    85. new_list1 = ['1','2']
    86. new_list2 = []
    87. new_list3 = [[1,2,3],[4,5,6]]#嵌套
    88. new_list4 = ['1',1,True]
    89. print(new_list1[-1])
    90. print(new_list1.index('1'))
    91. new_list1.insert(1,'3')
    92. new_list1.append('4')
    93. new_list1.extend(new_list4)
    94. del new_list1[1]#删除
    95. new_list1.pop(2)#删除可以去除元素,可接收
    96. new_list1.remove('1')#从后向前删除第一个元素
    97. new_list3.clear()#清空列表
    98. new_list4.count('1')#统计元素的数量
    99. print(len(new_list1))#长度统计
    100. # 32 列表遍历
    101. #while循环
    102. #for循环
    103. # 33. 元组 一旦定义不可修改 但内部可变
    104. t1 = ('1',1,True)
    105. t2 = ()
    106. t3 = tuple()
    107. t4 = ('hello',)#注意定义一个元素的逗号
    108. t5 = ((1,2),(3,4))
    109. #取元素 index(),count(),len()和list一样
    110. # 34. 字符串 像列表一样 下标取值 不可修改 count len和list一样
    111. str1 = "dhi 145"
    112. print(str1.index("1"))
    113. str2 = str1.replace("d","1")
    114. print(str1)
    115. print(str2)
    116. str1_list = str1.split(" ")
    117. str3 = str1.strip()#不传入参数就是前后空格
    118. str4 = str1.strip("d")#传入参数回去除本身及其子串
    119. # 35. 序列和切片 列表 元组 字符串都是序列 左闭右开 可取步长,步长为负数开始和结束也要反转
    120. new_list5 = [1,2,3,4]
    121. new_list6 = new_list5[:4]
    122. # 36.列表有序可重复可添加 集合不可重复无序 列表[]集合{}字符串""元组()
    123. new_set = {1,2,3}
    124. new_set1 = set()#集合的定义不能用{}被字典占用 定义重复key,新的把老的覆盖
    125. new_set.add(3)
    126. new_set.remove(3)
    127. print(new_set)
    128. new_set.pop()#随机取出一个值
    129. #new_set.clear()
    130. new_set2 = new_set1.difference(new_set1)#取差集 两个集合都不会变
    131. new_set1.difference_update(new_set2)#取差集 谁调用 谁修改 集合1去掉和集合2相同的元素
    132. new_set3 = new_set1.union(new_list2)#两个集合不变 得到一个新的集合
    133. len(new_set1)#求集合的数量
    134. # 37.集合的遍历
    135. for el in new_set3:
    136. print(el)
    137. # 38.字典 用{}定义,元素是一个一个键值对
    138. new_dict1 = {}
    139. new_dict2 = dict()
    140. new_dict3 = {"小明":1,"小华":2}
    141. score_1 = new_dict3["小明"]
    142. print(score_1)
    143. new_dict4 = {"小梦":{"语文":30,"数学":59},"小鸣":{"语文":49,"数学":100}}
    144. print(new_dict4["小梦"]["语文"])
    145. # 39.字典常用操作
    146. new_dict3["小明"] = 9 #更新
    147. new_dict3["小流"] = 5 #新增
    148. new_dict3.pop("小明") #删除
    149. new_dict3.clear() #清空
    150. keys = new_dict4.keys() #获取全部的key
    151. for key in keys: #不支持while循环
    152. print(f"字典的key是:{key}")
    153. print("字典的key是:%s" % new_dict4[key])
    154. for key in new_dict4:
    155. print(f"字典的key是:{key}")
    156. print("字典的key是:%s" % new_dict4[key])
    157. new_dict4len = len(new_dict4)
    158. # 40.容器的通用操作
    159. len(new_set1) #长度的通用操作
    160. print(max(new_set)) #最大最小函数,max min
    161. #list(容器) #truple(容器) #set(容器) #str(容器)
    162. #字典转列表 会抛弃所有的value
    163. #排序
    164. sorted(new_list3) #sorted排序后会变成列表
    165. sorted(new_list2, reverse = True) #反向排序
    166. # 41.字符串的比较 按照ASCLL码同位依次比较
    167. # 42.函数的返回值 有多个return 只返回第一个 返回多个值用逗号隔开
    168. # 函数的多返回值
    169. def test_return_muti():
    170. return 1, 2
    171. # 43.函数的多种返回形式
    172. # 位置参数 关键字参数 缺省参数 不定长参数
    173. def test_guanjianzi(name, age, gender):
    174. print(f"您的名字是:{name},年龄是:{age},性别是:{gender}")
    175. test_guanjianzi(name = "小明",age = 11,gender = "男")
    176. # 位置参数和关键字参数可以混用
    177. test_guanjianzi("小明",11,gender = "男")
    178. def test_qusheng(name, age=1):#带默认值必须放在最后
    179. print(f"{name},age")
    180. def test_budingchang(*args):#位置不定长
    181. print(args)#默认存的是元组
    182. def test_bdcguanjianzi(**kwargs):#关键字的不定长必须传入key-value形式
    183. print(kwargs)
    184. test_bdcguanjianzi(name = "小明", age = 11)
    185. # 44.函数做作为参数
    186. def test_hanshu(compute):#计算逻辑的传递而非数据的传递
    187. result = compute(1,2)
    188. print(result)
    189. def compute(a,b):
    190. return a + b
    191. # 45.lambda函匿名函数没有名称 只能临时使用一次 写一行
    192. test_hanshu(lambda x, y: x+y)
    193. # 46.文件的编码 UTF-8
    194. # 47.文件的操作 打开读取和关闭
    195. # with open 会自动关闭文件 建议用这个
    196. with open("D:/PyCharm/Test/FileIO/TestFile.txt",'r',encoding='UTF-8') as f:
    197. for line in f:
    198. print(line)
    199. # 统计a的个数
    200. # open(name,mode,encoding) 文件的名字/只读 写入 追加/UTF-8
    201. f = open("D:/PyCharm/Test/FileIO/TestFile.txt",'r',encoding='UTF-8')
    202. print(type(f))
    203. # f.read(num) num限制读取字节长度 在程序中多次调用read会从上次读取末尾开始
    204. # lines = f.readlines() #read的方法大类共享一个指针 readlines读取全部的行
    205. # print(lines)
    206. # readline一次读取一行
    207. # 用for循环读取操作
    208. # for line in f:
    209. # print(line)
    210. print(f.read().count('a'))
    211. # 文件的关闭 不关闭会造成一直占用
    212. f.close()
    213. # 去除反斜杠n 可以替换 可以用line.strip() strip()去除开头结尾空格和换行符
    214. # f.write()写入 f.flush()刷新后写入文件 不存在创建文件
    215. f1 = open("D:/PyCharm/Test/FileIO/TestFileWrite.txt",'w',encoding='UTF-8')
    216. f1.write("Hello World")
    217. f1.flush()
    218. f1.close()
    219. f2 = open("D:/PyCharm/Test/FileIO/TestFileAppend.txt",'a',encoding='UTF-8')
    220. f2.write("Hello World")
    221. f2.close()
    222. # 48.Python异常
    223. # 48.1 捕获异常 try: 可能发生的异常 except:出现异常执行的代码
    224. # 48.2 捕获指定异常 try: except NameError as e: 执行的语句 只捕获名字不存的异常
    225. # 48.3 捕获多个异常 try: except (NameError,ZeroDivisionError) as e: 执行的语句 捕获名字不存和除0异常
    226. # 48.4 捕获所有异常 try: except Exception as e: 执行的语句 捕获所有的异常
    227. # 48.5 捕获所有异常 try: except :出现异常 else:没有出现异常 finally:无论无何都会执行 比如文件的关闭
    228. # 48.6 异常的传递 在函数的调用时会一层一层向上传 传递几次 出现几次 不用去底层出现异常的地方去捕获 在上层的调用中捕获就可以
    229. # 49.模块 Module是一个python文件 以.py结尾 模块能定义函数 类和变量
    230. # 语法 [from 模块名] import [模块|类|变量|函数|*] as 别名
    231. import time as t
    232. print("开始")
    233. t.sleep(5)#睡眠5秒钟
    234. print("结束")
    235. # 自定义模块 直接import 直接调用里面的函数 同名函数会覆盖
    236. # 导入模块会直接调用模块中已经调用的函数 可以用 if __name__ == '__main__': 就不会被调用了
    237. # 在被调用Module中加入__all__=['函数名a']就只能用'函数名a' 其他不能用了
    238. # python模块相当于一个文件 python包相当于一个文件夹 _init_.py有这个相当于一个文件夹
    239. # import my_package.my_module1
    240. # my_package.my_module1.module1_print()
    241. from my_package.my_module1 import module1_print
    242. # 可以进行更细粒度的函数的导入 module也可以
    243. module1_print()
    244. # 在_init_.py文件中可以控制import*时的要插入的mudule 但是只能控制* 手动一个个插入是可以的
    245. # __all__ = [my_module1]

  • 相关阅读:
    浅谈智能照明控制系统应用在城市轨道交通
    Redis——Lettuce连接redis集群
    第3章-指标体系与数据可视化-3.1.2-Seaborn绘图库
    状态估计和KalmanFilter公式的推导与应用
    【无标题】Linux服务器上监控网络带宽的18个常用命令
    IIC协议及其工程【FPGA】
    贝壳找房基于Flink+Paimon进行全量数据实时分组排序的实践
    基于JAVA的鲜花店商城平台【数据库设计、源码、开题报告】
    微服务项目:尚融宝(15)(前端平台:完善积分等级模块)
    【无标题】
  • 原文地址:https://blog.csdn.net/weixin_45532984/article/details/133623322