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

5 篇文章 0 订阅
3 篇文章 0 订阅

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

b站-黑马Python

# 1.Hello World
print("Hello World")

# 2.字面量 在代码中,被写下来固定的值

# 3.字符串
print("python")

# 4.单行注释 # 多行注释""" """

# 5.type()获得类型
str_type = type("python")
print(str_type) #<class 'str'>

# 6.类型转换
tmp1 = 1
print(int(tmp1))
print(float(tmp1))
print(str(tmp1))
print(int(11.56))#丢失精度

# 7.标识符,英文,中文,下划线,数字,内容限定,大小写敏感,不可使用关键字

# 8.Python大小写敏感

# 9.加减乘除+-*/ 取余% 取整除// 指数**

# 10.'s' "s" """s"""都是可以定义字符串 对于""""""有等号就是字符串

# 11.转义字符 \
print("\"str")

# 12.字符串拼接 +

# 13.占位符 %s %d %f  %5.2f 代表宽度为5小数点后面为2
var1 = "s1"
var2 = "s2"
message = "两个变量为%s和%s" % (var1,var2)
print(message)

# 14.快速占位
var3 = 'sss'
var4 = '333'
print(f"不会做精度控制快速占位{var3}和{var4}")

# 15.表达式的格式化
print("1*2的结果是:%d" % (1*2))
print(f"1*2的结果是:{1*2}")

# 16.输入
#name = input("请输入信息") 默认都是字符串

# 17.布尔类型bool
print(f"3大于5吗{3 > 5}")

# 18.比较运算符 == != > < >= <=

# 19.if语句 if(): // if(): else: // if(): elif: else:

# 20.循环语句 while i < 0:

# 21.随机数
import random
num = random.randint(1,10)#产生1~10中的一个数

# 22.print不换行 print()空就是一个换行
print('Hello', end = '')

# 23.字表符 \t 进行对齐

# 24.输出九九乘法表
print("")
#第一种方法
i = 1
while i <= 9:
    j = 1
    while j <= i:
        print(f"\t{j}*{i}={j*i}", end = '')
        j += 1
    i += 1
    print("")
print("")
#第二种方法
for i in range(9):
    for j in range(i+1):
        print("\t%d*%d=%d" % (j+1,i+1,(i+1)*(j+1)), end ='')
    print("")

# 25.for循环
name = 'ForwardSummer'
for i in name:
    print(f"{i},",end = '')
# 26.range() 左开右闭 可加步进

# 27.continue跳过本次循环 break跳过所有循环

# 28.len()函数

# 29.函数定义,函数参数,返回值, 返回None
print()
def DefineF(x):
    return "这是一个函数"
print(DefineF(1))

# 30.函数注释,在函数体中使用多行注释来进行函数注释
def DefineY(x):
    """
    :param x:
    :return:
    """
    return "这是一个函数"

# 31 列表基础 长度可变 可修改
new_list1 = ['1','2']
new_list2 = []
new_list3 = [[1,2,3],[4,5,6]]#嵌套
new_list4 = ['1',1,True]
print(new_list1[-1])
print(new_list1.index('1'))
new_list1.insert(1,'3')
new_list1.append('4')
new_list1.extend(new_list4)
del new_list1[1]#删除
new_list1.pop(2)#删除可以去除元素,可接收
new_list1.remove('1')#从后向前删除第一个元素
new_list3.clear()#清空列表
new_list4.count('1')#统计元素的数量
print(len(new_list1))#长度统计

# 32 列表遍历
#while循环
#for循环

# 33. 元组 一旦定义不可修改 但内部可变
t1 = ('1',1,True)
t2 = ()
t3 = tuple()
t4 = ('hello',)#注意定义一个元素的逗号
t5 = ((1,2),(3,4))
#取元素 index(),count(),len()和list一样

# 34. 字符串 像列表一样 下标取值 不可修改 count len和list一样
str1 = "dhi 145"
print(str1.index("1"))
str2 = str1.replace("d","1")
print(str1)
print(str2)
str1_list = str1.split(" ")
str3 = str1.strip()#不传入参数就是前后空格
str4 = str1.strip("d")#传入参数回去除本身及其子串

# 35. 序列和切片 列表 元组 字符串都是序列 左闭右开 可取步长,步长为负数开始和结束也要反转
new_list5 = [1,2,3,4]
new_list6 = new_list5[:4]

# 36.列表有序可重复可添加 集合不可重复无序 列表[]集合{}字符串""元组()
new_set = {1,2,3}
new_set1 = set()#集合的定义不能用{}被字典占用 定义重复key,新的把老的覆盖
new_set.add(3)
new_set.remove(3)
print(new_set)
new_set.pop()#随机取出一个值
#new_set.clear()
new_set2 = new_set1.difference(new_set1)#取差集 两个集合都不会变
new_set1.difference_update(new_set2)#取差集 谁调用 谁修改 集合1去掉和集合2相同的元素
new_set3 = new_set1.union(new_list2)#两个集合不变 得到一个新的集合
len(new_set1)#求集合的数量

# 37.集合的遍历
for el in new_set3:
    print(el)

# 38.字典 用{}定义,元素是一个一个键值对
new_dict1 = {}
new_dict2 = dict()
new_dict3 = {"小明":1,"小华":2}
score_1 = new_dict3["小明"]
print(score_1)
new_dict4 = {"小梦":{"语文":30,"数学":59},"小鸣":{"语文":49,"数学":100}}
print(new_dict4["小梦"]["语文"])

# 39.字典常用操作
new_dict3["小明"] = 9  #更新
new_dict3["小流"] = 5  #新增
new_dict3.pop("小明")  #删除
new_dict3.clear()     #清空
keys = new_dict4.keys() #获取全部的key
for key in keys:      #不支持while循环
    print(f"字典的key是:{key}")
    print("字典的key是:%s" % new_dict4[key])
for key in new_dict4:
    print(f"字典的key是:{key}")
    print("字典的key是:%s" % new_dict4[key])
new_dict4len = len(new_dict4)

# 40.容器的通用操作
len(new_set1)  #长度的通用操作
print(max(new_set)) #最大最小函数,max min
#list(容器) #truple(容器) #set(容器) #str(容器)
#字典转列表 会抛弃所有的value

#排序
sorted(new_list3) #sorted排序后会变成列表
sorted(new_list2, reverse = True) #反向排序

# 41.字符串的比较 按照ASCLL码同位依次比较

# 42.函数的返回值 有多个return 只返回第一个 返回多个值用逗号隔开
# 函数的多返回值
def test_return_muti():
    return 1, 2
# 43.函数的多种返回形式
#   位置参数 关键字参数 缺省参数 不定长参数
def test_guanjianzi(name, age, gender):
    print(f"您的名字是:{name},年龄是:{age},性别是:{gender}")
test_guanjianzi(name = "小明",age = 11,gender = "男")
#   位置参数和关键字参数可以混用
test_guanjianzi("小明",11,gender = "男")
def test_qusheng(name, age=1):#带默认值必须放在最后
    print(f"{name},age")
def test_budingchang(*args):#位置不定长
    print(args)#默认存的是元组
def test_bdcguanjianzi(**kwargs):#关键字的不定长必须传入key-value形式
    print(kwargs)
test_bdcguanjianzi(name = "小明", age = 11)
# 44.函数做作为参数
def test_hanshu(compute):#计算逻辑的传递而非数据的传递
    result = compute(1,2)
    print(result)
def compute(a,b):
    return a + b
# 45.lambda函匿名函数没有名称 只能临时使用一次 写一行
test_hanshu(lambda x, y: x+y)

# 46.文件的编码 UTF-8

# 47.文件的操作 打开读取和关闭
# with open 会自动关闭文件 建议用这个
with open("D:/PyCharm/Test/FileIO/TestFile.txt",'r',encoding='UTF-8') as f:
    for line in f:
        print(line)
# 统计a的个数
# open(name,mode,encoding) 文件的名字/只读 写入 追加/UTF-8
f = open("D:/PyCharm/Test/FileIO/TestFile.txt",'r',encoding='UTF-8')
print(type(f))
# f.read(num) num限制读取字节长度 在程序中多次调用read会从上次读取末尾开始
# lines = f.readlines() #read的方法大类共享一个指针 readlines读取全部的行
# print(lines)
# readline一次读取一行
# 用for循环读取操作
# for line in f:
#     print(line)
print(f.read().count('a'))
# 文件的关闭 不关闭会造成一直占用
f.close()
# 去除反斜杠n 可以替换 可以用line.strip() strip()去除开头结尾空格和换行符
# f.write()写入  f.flush()刷新后写入文件 不存在创建文件
f1 = open("D:/PyCharm/Test/FileIO/TestFileWrite.txt",'w',encoding='UTF-8')
f1.write("Hello World")
f1.flush()
f1.close()
f2 = open("D:/PyCharm/Test/FileIO/TestFileAppend.txt",'a',encoding='UTF-8')
f2.write("Hello World")
f2.close()

# 48.Python异常
# 48.1 捕获异常 try: 可能发生的异常 except:出现异常执行的代码
# 48.2 捕获指定异常 try:  except NameError as e: 执行的语句 只捕获名字不存的异常
# 48.3 捕获多个异常 try:  except (NameError,ZeroDivisionError) as e: 执行的语句 捕获名字不存和除0异常
# 48.4 捕获所有异常 try:  except Exception as e: 执行的语句 捕获所有的异常
# 48.5 捕获所有异常 try:  except :出现异常 else:没有出现异常 finally:无论无何都会执行 比如文件的关闭
# 48.6 异常的传递 在函数的调用时会一层一层向上传 传递几次 出现几次 不用去底层出现异常的地方去捕获 在上层的调用中捕获就可以

# 49.模块 Module是一个python文件 以.py结尾 模块能定义函数 类和变量
# 语法 [from 模块名] import [模块|类|变量|函数|*] as 别名
import time as t
print("开始")
t.sleep(5)#睡眠5秒钟
print("结束")
# 自定义模块 直接import 直接调用里面的函数 同名函数会覆盖
# 导入模块会直接调用模块中已经调用的函数 可以用 if __name__ == '__main__': 就不会被调用了
# 在被调用Module中加入__all__=['函数名a']就只能用'函数名a' 其他不能用了
# python模块相当于一个文件  python包相当于一个文件夹 _init_.py有这个相当于一个文件夹
# import my_package.my_module1
# my_package.my_module1.module1_print()
from my_package.my_module1 import module1_print
# 可以进行更细粒度的函数的导入 module也可以
module1_print()
# 在_init_.py文件中可以控制import*时的要插入的mudule 但是只能控制* 手动一个个插入是可以的
# __all__ = [my_module1]

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值