首页 > 编程语言 >Python基础学习笔记(一)

Python基础学习笔记(一)

时间:2024-08-02 13:56:58浏览次数:11  
标签:__ 函数 Python self 笔记 学习 对象 print 变量

文章目录

一、下载Python

  1. 官网:https://www.python.org/

  2. 下载最新版本:python-3.10.2-amd64.exe

  3. 安装:

    1. Install Now:快速安装,勾选添加环境变量;
    2. Customize Installation:自定义安装,选择安装位置,勾选2、3、4选项;
  4. 学习使用:

    IDLE字体修改:Options > Configure IDLE 选择字体为 Consolas。

    IDLE两种模式:

    • 交互模式:直接在IDLE中输入指令,给出一个指令,机器立刻给出一个反馈。

      • 输入 print("Hello World!") 打印hello world;
      • 输入 算数自动计算出结果……
      • 输入 import this ,打印Python的禅宗(py的优点等等)。
    • 编辑器模式:以 .py 结尾的文件,包含全部代码。

      • 点击 File > New File 创建新文件,文件后缀为 .py 结尾;

      • 输入测试游戏代码,保存 ctrl + s ,点击 Run > Run Module 运行文件;

        """ 第一个小游戏 """
        
        temp = input("猜数字小游戏,猜猜我想的是哪个数字:")
        guess = int(temp)
        
        if guess == 8:
            print("你好棒棒")
            print("猜对了也没奖励!")
        else:
            print("猜错了!正确答案是8")
        
        print("游戏结束")
        

      注意

      ​ 遵守Python的语法规范,代码样式指导手册PEP8

      ​ 官网:https://www.python.org/dev/peps/pep-0008/

  5. BIF内置函数:

    在IDLE中输入:dir(__builtins__) 查看Python的所有内置函数,例如:print()、input() 等;

  6. 在 Python 中可以通过 help() 内置函数或者 __doc__ 属性查看某个函数的说明文档,如下代码所示:

    # 查看 print() 内置函数的说明文档
    help(print)
    print(print.__doc__)
    
  7. Python的注释:

    • 单行注释:使用 # 开头,例如:# 单行注释
    • 多行注释:使用三个连续的引号 ''' 或者 """ 作开头和结尾,也叫长字符串,不支持嵌套。
  8. 为自定义函数设置说明文档:

    当使用 help() 内置函数或者 __doc__ 属性即可查看的说明文档

    # 定义一个比较数字大小的函数
    def num_max(num1, num2):
        """
        比较两个数字的大小
        :param num1:形参1,数字1
        :param num2:形参2,数字2
        :return:大的数字,max_num = num1 if num1 > num2 else num2
        """
        max_num = num1 if num1 > num2 else num2
        return max_num
    
    help(num_max)
    print(num_max.__doc__)
    

二、变量

变量:关联一个对象的标识符。以字母(区分大小写)、数字、下划线组成,但不能以数字开头,支持中文。

  1. 格式一:变量名 = 变量值,例如:x = 3

  2. 格式二:变量名1, 变量名2 = 变量值1, 变量值2,例如:x, y = 3, 4

  3. 格式三:变量名1 = 变量名2 = 变量值,例如:x = y = 3

  4. 使用变量:例如:print(x) ,即可输出变量的值;

  5. 变量删除:del 语句:

    • 格式:del 变量名1,变量名2 ……
    • 作用:删除变量,接触与对象的关联
    • 自动化内存管理的引用计数:每个对象记录着被变量引用的次数,次数为 0 时自动销毁。
  6. 两个值互换:

    x = 3
    y = 5
    # 方式一
    z = x
    x = y
    y = z
    print(x, y)
    5 3		# 输出结果
    
    # 方式二,变量的格式二
    x, y = y, x
    print(x, y)
    5 3		# 输出结果
    

三、数据类型

  1. 核心数据类型:

    • 变量没有数据类型,但关联的对象有类型;
    • 使用 type 函数查看类型。
  2. 空对象:None

    作用

    • 占位
    • 接触与对象的绑定 关系
  3. 整形:int

  4. 浮点型:float

    • 小数:0.1

    • 科学计数法:e/E±指数,例如:1.23e-2 (等于0.0123) 、1.234e5 (等于123400.0)

  5. 字符串:str

  6. 复数(特定运算中涉及):complex

    • 由实部和虚部组成的数字;
    • 虚部以 jJ 结尾;
    • 字面值:1j、1+1j。
  7. 布尔:bool

  8. 类型转换:

    格式数据类型(变量值),例如:int(“50”)、str(100)等等。

四、运算符

  1. 算术运算符:+ 、- 、* 、/ (整除)、// (地板除,结果不含小数)、%、** (幂运算,次方)。
  2. 增强运算符:+=、-=、*=、/=等,与算术运算符个数一致。
  3. 比较运算符:< 、<= 、> 、>= 、== 、!= ,返回一个布尔值。
  4. 逻辑运算符:and、or、not
    • 短路运算:一旦结果确定,后面语句不执行,例如:1>2 and input(“请输入”) == “”
  5. 身份运算符:is、is not
  6. 优先级:(由上至下,算术 --> 身份)

五、语句

    1. 物理行:实际代码行数,一个物理行可包括多个逻辑行,使用分号分割;

    2. 逻辑行:对应一条指令,建议一个物理行对应一个逻辑行;

    3. 换行:

      • 隐式换行:使用括号,所有的括号中内容随意换行;

      • 显示换行:使用折行符 \ 换行,必须放在行的末尾;

  1. pass 语句:用于填充语法空白;

  2. 选择语句:

    • if elif else语句:注意缩进,冒号

      if 条件1:
          满足条件1时执行
      elif 条件2:
          满足条件2时执行
      else:
          都不满足时执行
      
    • 真值表达式:如果变量有值(不是None、“”、False),则为True。

    • 条件表达式 (三元表达式):根据条件,去为变量赋值,例如:x = 2 if 2 > 1 else 1。

  3. 循环语句:

    • while语句:

      while 条件:
          循环体
      #   break
      else:
          不满足条件
      
    • for语句:遍历可迭代元素

      for 变量名 in 可迭代对象:
          循环体
      else:
      
    • range函数:整数生成器,倒序时步长取负值

      • 接收三个参数,分别是:开始、结束、步长,含开始不含结尾。开始默认值 0,步长间隔默认值 1;
      • range(1, 5, 1),指生成1、2、3、4 的整数;
      • range(1, 5),参数代表开始、结束,步长间隔取默认值;
      • range(5),指生成0、1、2、3、4 的整数,其他参数取默认值;
  4. 跳转语句:只存在循环语句中

    • break语句:跳出循环
    • continue语句:跳出本轮循环

六、容器类型

  1. 通用操作:

    • 加法操作:使用加号将多个字符串拼接为一个字符串,字符串间可简写忽略加号;

    • 乘法操作:字符串乘以数字,实现重复多少次此字符串;

    • 比较运算:==、!=、<、>等,按编码大小比较;

    • 索引操作:格式:容器[整数],根据索引获取指定位置字符串,索引从零开始;

      aa = "hello world"print(aa[4])o   # 输出结果
      
    • 内建函数:

      • len函数,获取序列的长度:
        • 正向索引:len(字符串) - 1,从 0 开始;
        • 反向索引:- len(字符串),从 -1 开始。
      • max函数,最大值;
      • min函数,最小值;
      • sum函数,求和;
    • 切片操作:slice、split,格式:容器[开始:结束:间隔],包含开始,不包含结尾;

      aa = "hello world"
      print(aa[1:6])
      ello        # 输出结果,正常输出
      print('{!r}'.format(aa[1:6]))
      'ello '     # 输出结果,格式化为带引号输出
      print(aa[:3])     # 前三个,简写
      print(aa[-3:])     # 后三个,简写
      print(aa[::-1])     # 倒序输出
      print(aa[::1])     # 正序输出
      
    • 包含:in、not in,例如:“ell” in “hello” ,结果为布尔值 True;

  2. 字符串 str:由一系列字符组成,存储的是字符的编码值!

    • id函数:返回对象真实内存地址;

    • ord函数:返回字符对应的 Unicode 编码值,例如:ord(“s”);

    • chr函数:返回整数对应的字符串,例如:chr(114);

    • 单引号 Single quotes:'hello world'

    • 双引号 Double quotes:"hello world"

    • 三引号 Triple quoted :长字符串,实现换行字符串

      triple_quotes = '''hello world'''triple_quotes = """hello world"""
      
    • 转义字符:用于表示一些不能直接显示的ASCII字符,使用 \ 开头;

    • 原始字符串:表示字符串中没有转义符

      转义字符需要正常使用,不作为转义字符时,可以在前面加上r,转义不生效;

      print("D:\one\two\three")D:\one  wo  hree    # 输出结果print(r"D:\one\two\three")D:\one\two\three    # 输出结果
      
    • 字符串格式化:

      • 格式:"…%s…%d…%f…"%(变量1, 变量2, 变量3),运行时会自动将变量插入对应位置中;
      • 使用 % 类型码占位,%s 指字符串,%d 指整数,%f 指小数;
      • %2s 指规定占位符长度为 2,%.2f 指保留 2 位小数(四舍、六入、五平分)
  3. 列表 list:由一系列变量组成的可变序列容器

    • 格式一:容器名 = [],内部放对象,使用逗号分隔;
    • 格式二:容器名 = list(),参数放可迭代对象,将对象按索引分为多个对象;
    • 添加:append函数;
    • 插入:insert函数,参数一为下标,参数二为插入对象;
    • 修改:容器名[索引] = 数据值,也可以使用切片修改多个值,如:list01[2] = “你好”、list01[-2:] = [1, 2];
    • 删除:remove函数,参数为元素;或使用 del 语句,根据索引,切片删除;
    • 循环:for语句;
      • 建议使用索引操作,因为切片会创建新的列表,浪费内存;
      • 正序:range(len(列表名)),通过索引才能操作每一项数据;
      • 倒序:range(len(列表名) - 1, -1, -1)
    • 深浅拷贝:
      • 浅拷贝:list中的copy函数,或使用切片操作,浅拷贝等于切片;
      • 深拷贝:导入 import copy,使用copy.deepcopy(列表);优点:不影响原数据;缺点:占内存;
      • 区别:浅拷贝只复制新列表,重新引用已有的变量;深拷贝则是复制所有的列表及存储的变量;
    • 循环删除:使用倒序删除,否则会有漏删、下标越界问题出现;
    • 列表推导式:简洁方式构建列表;
      • 格式一:变量 = [表达式 for 变量 in 可迭代对象]
      • 格式二:变量 = [表达式 for 变量 in 可迭代对象 if 条件],if条件不满足则丢弃当前项;
      • 例如:list2 = [item for item in list1]、list2 = [item for item in list1 if item > 20]
    • 列表与字符串的转换:
      • 列表转字符串:join函数,例如:result = “连接符”.join();
      • 字符串转列表:split函数,例如:list01 = “字符串”.split(“分隔符”);
  4. 元组 tuple:由 变量 组成的不可变序列,无法增删改;

    • 格式一:tuple1 = (),注意:一个大小的元组创建:tuple1 = (元素, ),不写逗号表示元素原始的类型;
    • 格式二:tuple1 = tuple(可迭代对象);
    • 格式三:tuple1 = 100, 200, 300,可省略括号,不建议;
    • 查询:x, y = tuple1,指将元组中数据前两位赋值给 x 和 y;
      • **变量交换的本质 **就是创建元组,例如:x, y = (y, x)
      • 格式化字符串的本质 就是创建元组,例如:“…%s…%d…” % (name, age)
    • 索引
    • 切片
    • 循环
  5. 字典 dict:由 键值对 组成的可变散列容器,无序的;优点:查改最快;

    • 格式一:dict1 = {},键值对 使用冒号分隔,例如:“name” : “Bob”;
    • 格式二:dict1 = dict( 可迭代对象 ),格式:dict1 = dict([(“name”, “zs”), (“age”, 23)]),建议使用方括号;
    • 字典转列表:list(dict1),结果只会将键存储进列表,值将会丢弃;
    • 添加 / 修改:字典名[“键”] = 值,如果键不存在则添加,存在则是修改;例如:dict1[“name”] = “zs”
    • 查询:字典名[“键”],根据 键 获取 值,如果 键 不存在则报错
      • 获取键:for 键 in 字典名
      • 获取值:for 值 in 字典名.values()
      • 获取键值对:
        • for kv in 字典名.items(),获得的是元组;
        • for 键, 值 in 字典名.items(),分别获取键和值;
    • 删除:del语句,例如:del dict1[“name”],如果 键 存在则删除,如果 键 不存在则报错;
    • 字典推导式:建议转换可迭代对象为字典;
      • 格式一:变量 = {键 : 值 for 变量 in 可迭代对象}
      • 格式二:变量 = {键 : 值 for 变量 in 可迭代对象 if 条件}
  6. 集合 set:由 不重复的不可变类型变量(元组/数/字符串)组成的可变散列容器,即只有 键 的字典;

    • 格式一:set1 = {“值1”, “值2”},此方式不能创建空集合;
    • 格式二:set1 = set(可迭代对象),唯一的创建空集合方式;
    • 增加:add函数,例如:set1.add(“key”);
    • 删除:
      • remove函数,存在则删除,否则报错;先判断在删除!!!
      • discard函数,存在则删除,不存在不报错!
    • 数学运算
      • 交集 & :取出两个集合中相同的元素;set1 & set2
      • 并集 | :取出两个集合中不重复的元素;set1 | set2
      • 补集 ^ :取出两个集合中除去相同的元素后剩余的元素;set1 ^ set2
      • 减法 - :取出集合 1 有的而集合 2 没有的,set1 - set2
      • 子集 < :判断集合 2 是否包含集合 1 ,set1 < set2
      • 超集 > :判断集合 1 是否包含集合 2 ,set1 > set2
  7. 固定集合 frozenset:不可变的集合;

    • 用于对列表的去重复,相对来说节省内存;
  8. 嵌套循环 for for:外层循环一次,内层循环一轮;

    • 列表排序:

      list1 = [55, 66, 99, 54, 33, 98, 15, 22, 78]
      # 排序
      for i in range(len(list1) - 1):
          for j in range(i + 1, len(list1)):
              if list1[i] > list1[j]:
                  list1[i], list1[j] = list1[j], list1[i]
      
    • 列表推导式嵌套循环:实现列表的全排列;

      # 制作扑克牌
      numbers = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"]
      colors = ["黑桃♠", "梅花♣", "方块♦", "红桃♥"]
      
      puker = [i+j for i in numbers for j in colors]
      puker.append("大王

      标签:__,函数,Python,self,笔记,学习,对象,print,变量
      From: https://blog.csdn.net/fyx_demo/article/details/140870146

相关文章

  • 吴恩达深度学习deeplearning.ai学习笔记(一)3.9 3.10 3.11
    3.9神经网络的梯度下降法对于单隐层神经网络而言,主要参数就是,并且输入特征的维度可以记为,第一层有个隐藏单元,第二层有个输出单元,目前仅仅见过只有一个输出单元的情况;的维度是,的维度是,的维度是,的维度是,成本函数为:训练神经网络时,随机初始化参数很重要,而不是全令其为0;每个梯......
  • 吴恩达深度学习deeplearning.ai学习笔记(一)1.2 1.3 1.4
     1.2什么是神经网络? 表示输入特征1.3用神经网络进行监督学习输入一幅图,即Input(x)isaimage;输出一个指数如1~1000,即Output(y)isaobject(1,2,……,1000),来表明这张照片是否是1000个不同图像中的一个,可用于给照片打标签。只有选择好输入x和输出y,才能解决特定的问......
  • 吴恩达深度学习deeplearning.ai学习笔记(一)2.1 2.2 2.3 2.4
    2.1逻辑分类/二元分类 logisticregression经典问题:假如你有一张图片作为输入,你想输出能识别此图的标签,也就是:如果是猫,输出1;如果不是猫,输出0。这是老吴最喜欢的猫检测器;我们用y来表示输出的结果标签;一张图片在计算机中是如何表示的?计算机保存一张图片,要保存三个独立矩阵,分......
  • Java入门、进阶、强化、扩展、知识体系完善等知识点学习、性能优化、源码分析专栏分享
    场景作为一名Java开发者,势必经历过从入门到自学、从基础到进阶、从学习到强化的过程。当经历过几年企业级开发的磨炼,再回头看之前的开发过程、成长阶段发现确实是走了好多的弯路。作为一名终身学习的信奉者,秉承Java体系需持续学习、持续优化的信念。不惜耗费无数个日日夜夜,耗......
  • Linux操作系统基础学习笔记(3)
    Linux操作系统基础学习笔记(3)前言3、Linux命令(1)manls可查看命令说明,相当于帮助文档(2)关机重启(root)(3)快捷键和常用命令(4)别名的配置(5)通配符(6)系统环境变量(7)符号下期前言本篇内容主要为Linux基本命令主要包括:查看命令说明的man指令关机重启的root一些快捷键,如......
  • 基于Java的数据结构课程网站的设计与实现/线上学习系统/在线教学管理系统/Web、SSM、v
    需要源码的联系方式请查看文章末尾数据结构课程网站的设计与实现摘 要计算机网络与信息化管理相配合,可以有效地提高管理人员的工作效能和改进工作的质量。良好的数据结构课程网站可以使管理员工作得到更好的实施和应用,并有助于管理员更好地管理数据结构课程,解决人力管理......
  • HTML5+CSS3笔记(Xmind格式):第一天
    Xmind鸟瞰图:文字总结:1.新增语义化标签:-header:定义文档的页眉,用来表示页面的头部。-nav:定义导航链接的部分nav元素代表页面中的导航,其中的导航元素链接到其他页面或当前页面的其他部分。-main:主体信息-aside:侧边栏-article:article元素表示文档、页面或应用程......
  • redis-学习笔记一
    redis的常见数据类型及其使用场景常见的数据类型有五种:String字符串、List列表、Hash哈希、Set集合、Zset有序集合String字符串字符串是Redis中最基本的数据结构,可以存储任意类型的数据,包括文字、数字(整型、浮点等)等.它具有高效的读写操作和丰富的字符串处理函数,使用......
  • 随机森林的可解释性分析(含python代码)
    随机森林的可解释性分析1.引言可解释性的重要性2.随机森林的原理2.1基本原理:2.2随机森林的实现3.随机森林的可解释性分析3.1特征重要性3.2特征重要性3.3SHAP值3.4部分依赖图(PDP)3.5交互特征效应3.6变量依赖图4.结论5.参考文献1.引言在机器学习领域,随机森林......
  • 【Python】模块
    1.模块的概念Python中有一种方法可以把定义放在一个文件里面,并在脚本或者解释器的交互实例中使用它们。这样的文件被称作Python的模块。2.自定义模块在Python中,自定义模块有两个作用,一个作用是规范代码,让代码更容易阅读;另一个作用是方便其他程序使用已经编写好的代码,提高开......