当前位置:   article > 正文

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

黑马 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) #<class 'str'>
  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]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/161010
推荐阅读
相关标签
  

闽ICP备14008679号