2025python学习笔记

一.Python语言基础入门

第一章

01.初识Python

  • Python的起源:

    • 1989年,为了打发圣诞节假期,Gudio van Rossum吉多·范罗苏姆(龟叔)决心开发一个新的解释程序(Python维形)
    • 1991年,第一个Python解释器诞生
    • Python这个名字来自龟叔所挚爱的电视剧Monty Python’s Flying Circus
  • Python适用范围:

02.什么是编程语言

  • 以Python为例
    • 用于人类和计算机进行交流的一种语言,通过编写编程语言的代码,去指挥计算机工作。
它无法直接和计算机沟通,需要翻译工具(解释器或编译器)将代码翻译成二进制,从而实现和计算机的畅顺沟通

03.Python安装

想要使用Python语言编写程序,我们必须下载Python安装包并配置Python环境,Python目前最新版本是:3.13.3(发布于2025年4月8日)

  • 安装Python开发环境

    • 第一步:打开网址:Welcome to Python.org

      • image-20250426224524748
    • 第二步:点击“Downloads”

      • image-20250426224717192
    • 第三步:进入后,点击“Download Python 3.13.3”

      • image-20250426224915286
    • 第四步:下载好后,点击Python安装包

      image-20250426230743199

    • 第五步:点击“Customize installation”,并且勾选“Add python.exe to PATH”

      • image-20250426231437936
    • 第六步:默认是全选的,点击“Next”

      • image-20250426231811572
    • 第七步:点击”Browse“,选择你想要放的位置

      • image-20250426232220065
    • 第八步:然后点击”Inatall“,开始安装

    • 第九步:安装成功后,会出现”Setup was successful“,然后点击”Disable path length limit“关闭路径长度的限制,最后点击close就行了

      • image-20250426232728867
    • 第十步:验证Python是否安装成功,同时按下”win+r“键,然后输入”cmd“,在命令行中输入”python“,如果出现如下情况,则证明安装成功。

      • image-20250426233804143

04.第一个Python程序——”Hello world“

  • 同时按下”win+r“键,然后输入”cmd“,在命令行中输入”python“,出现下面这个界面

    • image-20250426233804143
  • 然后接着输入“print(“Hello World”)”,然后按下回车,命令行便会打印“Hello World”,如下

    • image-20250427100745238
    需要注意的点:
    引号和括号必须要是英文的,不能是中文的,否则会报错,如下image-20250427101648826

05.Python解释器

基本原理:计算机只认识二进制,即0和1
  • 计算机并不认识Python代码,但是Python有解释器程序。安装Python环境就是在安装Python解释器程序,如下图:

Python解释器原理

  • Python解释器就两个功能:
    • 1.翻译代码
    • 2.提交给计算机运行
  • Python解释器在哪里
    • 存放在:<Python安装目录>/Python.exe
      • image-20250427105723307
    • 我们在CMD(命令提示符)程序内,执行的python,就是上图的python.exe程序
那么问题来了,当我们在命令行中输入完一行代码后,按下回车,程序就直接运行了,有什么办法可以同时运行多行代码呢?
  • 思路实现
    • 我们可以将代码,写入一个以”.py”结尾的文件中,使用python命令去运行它。
    • 如,在Windows系统的D盘,我们新建一个名为:test.py的文件,并通过记事本程序打开它,输入如下内容:
      • image-20250427111012796
    • 在“命令提示符”程序内,使用python命令,运行它,如图:
      • image-20250427111240013

06.Pycharm开发工具的安装

Python程序的开发有许多种方式,一般我们常见的有:

  • Python解释器环境内,执行单行代码

  • 使用Python解释器程序,执行Python代码文件

  • 使用第三方IDE(集成开发工具),如PyCharm软件,开发Python程序

安装步骤

  • 第一步:打开网址:https://www.jetbrains.com/zh-cn/pycharm/
  • 第二步:点击“下载”
    • image-20250427113121918
  • 第三步:选择社区版,点击“下载”
    • image-20250427120915908
  • 第四步:点击Pycharm安装包
  • 第五步:点击“下一步”
    • image-20250427114534189
  • 第六步:先选择安装路径,再点击下一步
    • image-20250427114746659
  • 第七步:选择如下按钮,然后点击下一步
    • image-20250427120007116
  • 第八步:点击“安装”
    • image-20250427120110507
  • 第九步:等待安装完成
    • image-20250427120319690
  • 第十步:点击“完成”
    • image-20250427120355280
  • 第十一步:点击安装好后的Pycharm
  • 第十二步:点击下一个
    • image-20250427124106775
  • 第十三步:勾选条款,然后点击“继续”
    • image-20250427124203761
  • 第十四步:点击”新建项目“
    • image-20250427124557698
  • 第十五步:按照下图操作,然后点击创建
    • image-20250427125059775
  • 第十六步:得到下图
    • image-20250427125451542
  • 第十七步:新建文件,鼠标右键点击”1“,创建Python文件“test.py”
    • image-20250427125631156
  • 第十八步:在”test.py“文件中写入”print(“Hello world”)“,然后点击红框处的绿色三角形,就会在底部的终端中显示输出结果
    • image-20250427125921746

07.Pycharm开发工具的使用

  • 如何修改主题
    • Pycharm的默认主题是黑色

    • 第一步:点击右上角齿轮按钮,找到”主题“并点击

      image-20250427151732082
    • 第二步:选择主题,有5个常用的主题可以选择,也可以选择获取更多主题

      image-20250427151854537
  • 修改默认字体和大小
    • 第一步:点击右上角齿轮按钮,找到”设置“并点击

      image-20250427152229815
    • 第二步:按照下面的步骤设置字体和字体大小

      • image-20250427152702211
    • 第三步:设置快捷键改变字体大小,点击设置中的”按键映射“,然后在右边的搜索框中输入”字体“,接着搜索,出现下面的结果

      • image-20250427153412410
    • 第四步:先点击上图中的”减少字体大小“,再点击”添加鼠标快捷方式“,如下图

      • image-20250427153633014
    • 第五步:出现下图后,同时点击”Ctrl+鼠标滚轮下滑“

      • image-20250427153808367
    • 第六步:出现下图后,就说明设置成功了,然后点击确定

      • image-20250427153915672
    • 第七步:按照”设置减小字体大小“的方法,设置”增大字体大小“的快捷键,如下

      • image-20250427154109768
    • 第八步:都设置完毕后,记住一定要点击“应用”

      • image-20250427154227141
  • 装一些好用的插件
    因为在安装最新版本的Pycharm时已经捆绑选择了中文插件,所以就不需要再次安装中文插件了!!!!
    • 安装翻译插件 ----------- 碰到不懂的英文,可以快速了解意思
      • 第一步:进入设置界面
      • 第二步:按照下图操作
        • image-20250427172918994
      • 第三步:安装好后,重启Pycharm
      • 第四步:用鼠标选中要翻译的单词,然后单击右键,点击”翻译“,出现下图
        • image-20250427173459066
  • 常用快捷键
    • ctrl + alt + s:打开软件设置

    • ctrl + alt + l:一键整理代码

    • ctrl + d:复制当前行代码

    • shift + alt + 上\下:将当前行代码上移或下移

    • crtl + shift + f10:运行当前代码文件

    • shift + f6:重命名文件

      如果遇到shift+f6快捷键不行的,可以在依次点击:设置>插件,然后在插件中搜索”Imefix“,然后下载对应的插件即可image-20250427181812618

    • ctrl + a:全选

    • ctrl + c\v\x:复制、粘贴、剪切

    • ctrl + z:撤回

    • ctrl + f:搜索

第二章

01.数据类型

Python中常用的数据类型有六种:数字(Number)、字符串(String)、列表(List)、元组(Tuple)、集合(Set)、字典(Dictionary)。其中数字类型又包括:整数(Int)、浮点数(float)、复数(complex)、布尔(bool),具体如下图:

9种常用Python数据类型

02.数据类型的转换

有时候需要将数据从一种类型转换为另一种类型。Python为此提供了内置函数:

03.字面量

  • 什么是字面量?
    • 字面量就是在代码中,被写下来固定的值,Python的9种数据类型就是字面量,例如:数字字面量,整数字面量,复数字面量,字典字面量。

    • 举个例子:

      print("Hello, World!")
      

      在这行代码中,“Hello, World!” 就是一个字面量。它是一个固定的值,我们告诉Python去显示它。

  • Python字面量的类型
    • 整数字面量

      这些是正的或负的整数,没有小数点。

      age = 23
      high = 176
      

      这里,23和176是整数字面量。它们表示精确的、整数值

    • 浮点数字面量

      这些是有小数点的数字。

      pi = 3.14159
      gravity = 9.81
      

      3.14159和9.81是浮点数字面量。它们允许我们处理更精确的数值。

    • 复数字面量

      这些数字有实部和虚部。

      complex_number = 3 + 4j
      

      这里,3 + 4j是一个复数字面量,3是实部,4是虚部。它在高级数学计算中使用。

    • 布尔字面量

      布尔字面量表示真值。

      is_xiaogudu_gudu = True
      is_xiaogudu_ugly = False
      

      True和False是布尔字面量,它们 在代码中用于条件判断。

    • 字符串字面量

      字符串是字符序列,用单引号(‘’)或双引号(“”)括起来。

      # 单行字符串
      name = "xiaogudu"
      message = 'Hello, how are you?'# 多行字符串,使用三引号
      long_text = """这是
      一个多行
      字符串字面量。"""
      
    • 列表字面量

      列表是有序的项的集合(可以更改)

      friends = ["伊地知虹夏", "喜多郁代", "山田凉"]
      numbers = [1, 2, 3, 4, 5]
      

      方括号[]内的项创建列表字面量。

    • 元组字面量

      元组类似于列表,但它们是不可变的(不能更改)。

      tuple_one = (10, 20, 30)
      tuple_two = (255, 122, 128)
      

      圆括号()内的项创建元组字面量。

    • 集合字面量

      集合是无序的唯一项的集合。

      friends = {"伊地知虹夏", "喜多郁代", "山田凉"}
      numbers = {1, 2, 3, 4, 5}
      

      大括号{}内的项(但没有键值对)创建集合字面量。

    • 字典字面量

      字典存储键值对。

      person = {"name": "xiaogudu", "age": 16, "city": "神奈川县"}
      

      大括号{}内的键值对创建字典字面量。

04.注释

05.变量

  • 变量:在程序运行时,能储存计算结果或能表示值的抽象概念。简单来说变量就是在程序运行时,记录数据用的
  • 变量的定义格式:
    • 变量名称 = 变量的值
      • “变量名称”:每一个变量都有自己的名称,称之为:变量名,也就是变量本身

      • “=”:赋值,表示将等号右侧的值,赋予左侧的变量

      • “变量的值”:每一个变量都有自己存储的值(内容),称之为:变量值

  • 创建变量:
    • 基本赋值:
      age = 16
      name = "小孤独"
      hobby = "喜欢弹吉他"
      

      在这些例子中:

      ​ age 是一个变量,存储着年龄(整数)
      ​ name 也是一个变量,存储着名字(字符串)
      ​ hobby 也是一个变量,存储着爱好(也是字符串)

    • 多重赋值:

      Python 允许我们高效地在一行内给多个变量赋值

      age, name, hobby = 16, "小孤独", "喜欢弹吉他"
      print(age)   # 打印“16”
      print(name)  # 打印“小孤独”
      print(hobby) # 打印“喜欢弹吉他”
      

      这就像发牌一样 - 每个变量按顺序获得自己的值

  • 删除变量:

    在 Python 中,我们可以使用 del 关键字删除不再需要的变量

    name = "小孤独" #创建变量并赋值
    print(name)  # 输出“小孤独”
    del name     # 删除变量
    print(name)  # 这将引发一个错误,说明变量删除成功
    
  • 变量地址:

    Python 中的每个变量在计算机内存中都有一个唯一的地址,就像街道上的每座房子都有自己的地址一样。我们可以使用 id() 函数找出变量所在的位置:

    name = "小孤独"
    print("name 的内存地址:", id(name)) 
    #打印语句会输出“name 的内存地址: 3141631801696”
    

    上述的数字就是变量在计算机内存中的地址

  • 变量类型:

    Python 允许我们使用·type() 函数检查变量所持有的数据类型:

    age = 16
    name = "小孤独"
    print(type(age))  # 打印语句输出“<class 'int'>”
    print(type(name)) # 打印语句输出“<class 'str'>”
    

    这告诉我们 age 是一个整数(int),而 name 是一个字符串(str)

  • 变量的类型转换:

    有时,我们需要改变变量的类型。这个过程称为类型转换。

    age = 16
    print(type(age))  # 打印语句输出“<class 'int'>”
    age_str = str(age) # 将变量从数字类型转换成字符串类型
    print(type(age_str)) # 打印语句输出“<class 'str'>”
    
  • 变量命名约定:
    • 变量以字母或下划线开头

    • 变量可以包含字母、数字和下划线

    • 变量区分大小写

    • 变量不能是 Python 关键字

    • 好名字:

      age = 16
      name = "小孤独"
      hobby = "喜欢弹吉他"
      
    • 坏名字:

      2film = "电影"  # 不能以数字开头
      my-age = 20    # 不允许使用连字符
      
  • 全局变量和局部变量:
    • 全局变量:

      全局变量就像派对的主持人 ,它们在整个程序中都是已知的:

      global_var = "我无处不在!"def use_global():print(global_var) # 打印“我无处不在!”use_global()  # 这可以正常工作
      print(global_var)   # 打印“我无处不在!”
      
    • 局部变量:

      在函数内部创建的变量称为局部变量。它们就像只存在于该函数中的秘密:

      def party_planner():local_var = "我只在这个函数中存在"print(local_var)party_planner()
      print(local_var)  # 这将引发一个错误
      
  • 常量:

    常量是值不应该改变的变量。在 Python 中,我们使用全部大写名称来表示常量:

    PI = 3.14159
    MAX_GUESTS = 50print("Pi 总是", PI)
    print("我们不能有超过", MAX_GUESTS, "个宾客")
    

06.标识符

  • 什么是标识符
    • 在Python程序中,我们可以给很多东西起名字,比如:
      变量的名字,方法的名字,类的名字,等等
    • 这些名字,我们把它统一的称之为标识符,用来做内容的标识。
      所以,标识符就是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名
  • 标识符命名规则(需要强制遵守)
    Python中,标识符命名的规则主要有3类:
    • 内容限定
      • 只允许出现:**英文、中文、数字、下划线(_)**这四类元素
      • 注意:1.不推荐使用中文;2.数字不能在开头
    • 大小写敏感
      • 字母的大小写是完全能够分开的,例如:

        name = "小孤独1"
        Name = "小孤独2"
        print(name)   # 输出:小孤独1
        print(Name)   # 输出:小孤独2
        
    • 不可使用关键字
      • 关键字的定义:

        以下是 Python 3.10 及更高版本的关键字列表(共 35 个):

        False    None    True     and      as       assert   async
        await    break   class    continue def      del      elif
        else     except  finally  for      from     global   if
        import   in      is       lambda   nonlocal not      or
        pass     raise   return   try      while    with     yield
        match    case    
        

        用途分类:

        逻辑值:True, False, None逻辑运算:and, or, not流程控制:if, elif, else, for, while, break, continue函数与类:def, return, class, lambda, pass, raise, yield异常处理:try, except, finally, with, assert作用域:global, nonlocal模块操作:import, from, as异步编程:async, await
        
  • 标识符命名规范(建议遵守)
    不同的标识符有不同的命名规范,但是现在只学到了变量,所以只讲变量的命名规范:
    变量的命名规范:
    • 见名知意
      • 明了:尽量做到,看到名字,就知道是什么意思
      • 简洁:尽量在确保“明了”的前提下,减少名字的长度
    • 下划线命名法
      • 多个单词组合变量名,要使用下划线做分隔

        first_number = 1
        student_name = "小孤独"
        
    • 英文字母全小写
      • 变量中的英文字母应该全部小写

07.运算符

  • 算数运算符
    # 加法
    print(5 + 3)  # 输出:8# 减法
    print(10 - 4)  # 输出:6# 乘法
    print(3 * 4)  # 输出:12# 除法
    print(20 / 5)  # 输出:4.0# 整除/地板除(向下取整到最近的整数)
    print(17 // 3)  # 输出:5# 取模(除法的余数)
    print(17 % 3)  # 输出:2# 幂运算
    print(2 ** 3)  # 输出:8
    
  • 比较运算符

    这些运算符就像编程比赛中的评委——它们比较值并返回TrueFalse

    # 等于
    print(5 == 5)  # 输出:True# 不等于
    print(5 != 3)  # 输出:True# 大于
    print(7 > 3)   # 输出:True# 小于
    print(2 < 8)   # 输出:True# 大于或等于
    print(5 >= 5)  # 输出:True# 小于或等于
    print(3 <= 1)  # 输出:False
    
  • 逻辑运算符
    # and 运算符
    print(True and True)   # 输出:True
    print(True and False)  # 输出:False# or 运算符
    print(True or False)   # 输出:True
    print(False or False)  # 输出:False# not 运算符
    print(not True)        # 输出:False
    print(not False)       # 输出:True
    
  • 赋值运算符

    这些运算符就像Python中的搬运工——它们为变量赋值

    # 简单赋值运算符
    x = 5
    print(x)  # 输出:5# 复合赋值运算符(下面7个都是)
    # 加法赋值运算符
    x += 3    # 等同于 x = x + 3
    print(x)  # 输出:8# 减法赋值运算符
    x -= 2    # 等同于 x = x - 2
    print(x)  # 输出:6# 乘法赋值运算符
    x *= 2    # 等同于 x = x * 2
    print(x)  # 输出:12# 除法赋值运算符
    x /= 3    # 等同于 x = x / 3
    print(x)  # 输出:4.0# 取模赋值运算符
    x %= 3    # 等同于 x = x % 3
    print(x)  # 输出:1.0# 幂赋值运算符
    x **= 3   # 等同于 x = x ** 3 = x^3
    print(x)  # 输出:1.0# 取整除赋值运算符
    x //= 2   # 等同于 x = x // 2 
    print(x)  # 输出:0.0
    
  • 位运算符
    # 1.按位与(&)
    # 功能:两个二进制数的对应位都为 1 时,结果位才为 1,否则为 0
    a = 5   # 二进制 0000 0101(补码)
    b = 3   # 二进制 0000 0011(补码)
    result = a & b
    print(result)  # 输出 1 (二进制 0000 0001)# 2.按位或(|)
    # 两个二进制数的对应位有一个为 1,结果位就为 1
    a = 5   # 0000 0101(补码)
    b = 3   # 0000 0011(补码)
    result = a | b
    print(result)  # 输出 7 (0000 0111)# 3.按位异或(^)
    # 功能:两个二进制数的对应位不同时,结果位为 1,否则为 0
    a = 5   # 0000 0101(补码)
    b = 3   # 0000 0011(补码)
    result = a ^ b
    print(result)  # 输出 6 (0000 0110)# 4.按位取反(~)
    # 功能:将二进制数的每一位取反(0 变 1,1 变 0)
    a = 5   # 二进制 0000 0101(补码)
    result = ~a
    print(result)  # 输出 -6(即二进制补码 1111 1010)# 5.左移(<<)
    # 功能:将二进制数的所有位向左移动指定位数,右侧补 0
    a = 5   # 0000 0101(补码)
    result = a << 1  # 左移 1 位
    print(result)    # 输出 10 (0000 1010)# 6.右移(>>)
    # 功能:将二进制数的所有位向右移动指定位数,左侧补符号位(正数补 0,负数补 1)
    a = 5   # 0000 0101(补码)
    result = a >> 1  # 右移 1 位
    print(result)    # 输出 2 (0000 0010)b = -8 # 1111 1000(补码)
    result = b >> 2  # 右移 2 位(负数保留符号)
    print(result)    # 输出 -2
    
  • 身份运算符

    身份运算符用于比较两个对象的内存位置

    # is 运算符
    x = [1, 2, 3]
    y = [1, 2, 3]
    z = xprint(x is z)  # 输出:True
    print(x is y)  # 输出:False
    print(x == y)  # 输出:True# is not 运算符
    print(x is not y)  # 输出:True
    
  • 成员运算符

    这些运算符就像俱乐部门口的保镖——它们检查一个值是否是序列的成员

    # in 运算符
    fruits = ['apple', 'banana', 'cherry']
    print('banana' in fruits)  # 输出:True# not in 运算符
    print('mango' not in fruits)  # 输出:True
    
  • 运算符的优先级
    优先级运算符描述
    1()括号
    2**幂运算
    3+x, -x, ~x一元加,一元减,按位非
    4*, /, //, %乘法,除法,整除,取模
    5+, -加法,减法
    6<<, >>按位左移,按位右移
    7&按位与
    8^按位异或
    9|按位或
    10<, >, <=, >=, ==, !=, is, is not, in, not in比较运算符,身份运算符,成员运算符
    11not逻辑运算符非
    12and逻辑运算符与
    13or逻辑运算符或
    14=, +=, -=, *=, /=, %=, **=, //=赋值运算符

08.字符串扩展

  • 字符串的三种定义方式
    • 字符串在Python中有3种定义形式

      • 1.单引号定义法:name = ‘小孤独’

      • 2.双引号定义法:name = "小孤独 "

      • 3.三引号定义法:name = " " "小孤独 " " "

        需要注意的是,三引号定义法,和多行注释的写法一样,同样支持换行操作。使用变量接收它,它就是字符串;不使用变量接收它,就可以作为多行注释使用。

    • 如何定义本身就包含引号的字符串

      • 1.单引号定义法,可以内含双引号

        # 在字符串内包含双引号
        name = '"小孤独"'
        print(name)   # 输出:"小孤独"
        
      • 2.双引号定义法,可以内含单引号

        # 在字符串内包含单引号
        name = "'小孤独'"
        print(name)   # 输出:'小孤独'
        
      • 3.可以使用转移字符(\)来将引号解除效用,变成普通字符串

        # 使用转义字符(\)解除引号的效用
        name = " \"小孤独\" "
        print(name)   # 输出:"小孤独"
        name = ' \'小孤独\' '
        print(name)   # 输出:'小孤独'
        
  • 字符串拼接
    • 如果我们有两个字符串(文本)字面量,可以将其拼接成一个字符串,通过+号即可完成,如:

      # 字符串字面量之间的拼接
      print("小孤独" + "学Python") # 输出:小孤独学Python
      
    • 不过一般,单纯的2个字符串字面量进行拼接显得很呆,一般,字面量和变量或变量和变量之间会使用拼接,如:

      # 字符串字面量和字符串变量的拼接
      name = "小孤独"
      study = "学Python"
      print("我是:"+name +",我要:"+ study) # 输出:我是:小孤独,我要:学Python
      
    • 字符串无法和非字符串类型直接进行拼接

  • 字符串格式化
    • 1.使用 % 运算符

      • %s 是一个字符串的占位符,而 “World” 是替换它的值

        print("Hello, %s!" % "World")  # 输出:Hello, World!
        
      • 你可以使用多个占位符

        注意:多个变量占位,变量要用括号括起来,并按照占位的顺序填入

        name = "小孤独"
        age = 16
        print("My name is %s and I am %s years old." % (name, age))
        # 输出:My name is 小孤独 and I am 16 years old.
        
      • Python中支持非常多的数据类型占位,最常用的如下

        格式符号转化
        %s将内容转换成字符串,放入占位位置
        %d将内容转换成整数,放入占位位置
        %f将内容转换成浮点型,放入占位位置

        示例:

        name ="小孤独"
        age = 16
        height = 1.56
        message ="我是%s,我的年龄是:%d,我的身高是:%f米" %(name, age, height)
        print(message)
        # 输出:我是:小孤独,我的年龄是:16,我的身高是:1.560000米
        
    • 2.str.format() 方法

      • Python 2.6+ 引入的更灵活的格式化方法,使用 {} 作为占位符

      • 基本用法:

        print("Name: {}, Age: {}".format("小孤独", 16))          # 位置参数
        print("Name: {1}, Age: {0}".format(16, "小孤独"))        # 索引参数
        print("Name: {name}, Age: {age}".format(name="小孤独", age=16))  # 关键字参数
        
      • 格式控制:

        # 数字格式化
        print("PI: {:.2f}".format(3.14159))  # 输出:PI: 3.14(保留两位小数)
        print("Hex: {:x}".format(255))       # 输出:Hex: ff(十六进制)# 对齐与填充
        print("{:>10}".format("Hello"))      # 右对齐,宽度10 → '     Hello'
        print("{:<10}".format("Hello"))      # 左对齐,宽度10 → 'Hello     '
        print("{:*^10}".format("Hi"))        # 居中并用*填充 → '****Hi****'# 千位分隔符
        print("{:,}".format(1000000))        # 输出:1,000,000
        
      • 引用对象属性或元素:

        person = {"name": "小孤独", "age": 16}
        print("Name: {p[name]}, Age: {p[age]}".format(p=person))  # 输出:Name: 小孤独, Age: 16
        
    • 3.f-strings(格式化字符串字面量)

      • Python 3.6+ 引入,语法简洁高效,在字符串前加 fF,变量直接嵌入 {}

      • 基本用法:

        name = "小孤独"
        age = 16
        print(f"Name: {name}, Age: {age}")  # 输出:Name: 小孤独, Age: 16
        
      • 表达式和函数调用:

        name = "xiaogudu"
        age = 16
        # 直接计算表达式
        print(f"Next year's age: {age + 1}")  # 输出:Next year's age: 17# 调用方法或函数
        print(f"Name in uppercase: {name.upper()}")  # 输出:Name in uppercase: XIAOGUDU
        
      • 高级格式控制:

        pi = 3.14159
        print(f"PI: {pi:.2f}")               # 输出:PI: 3.14
        print(f"Hex: {255:x}")               # 输出:Hex: ff
        print(f"Aligned: {'text':>10}")      # 输出:Aligned:       text
        
      • 多行字符串:

        name = "小孤独"
        age = 16
        message = (f"Name: {name}\n"f"Age: {age}\n"f"Square of Age: {age ** 2}"
        )
        print(message)  
        # 输出:Name: 小孤独
        # Age: 16
        # Square of Age: 256
        
    • 4.模板字符串(string.Template

      • Python 标准库中的简单模板,通过 $ 占位符替换,适合用户可控的输入(避免安全风险)

        from string import Template
        t = Template("Name: $name, Age: $age")
        print(t.substitute(name="小孤独", age=16))  # 输出:Name: 小孤独, Age: 16
        
    • 5.总结对比:

      方法优点缺点适用场景
      % 格式化简单,兼容旧代码功能有限,易出错旧项目或简单替换
      str.format()功能强大,支持复杂格式语法稍冗长需要兼容 Python 2.6+
      f-strings简洁高效,支持表达式仅限 Python 3.6+现代 Python 代码首选
      string.Template安全,适合用户输入功能最少用户可控模板
  • 格式化的精度控制

    我们可以使用辅助符号m.n来控制数据的宽度和精度

    • m:控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效

    • n:控制小数点精度,要求是数字,会进行小数的四舍五入

      示例:

      • 1.%运算符

        num1 = 11
        num2 = 11.345
        num3 = 0.001234
        print("数字11宽度限制5,结果是:%5d" % num1)
        print("数字11.345宽度限制7,小数精度2,结果是:%7.2f" % num2)
        print("数字11.345不限制,小数精度2,结果是:%.2f" % num2)
        print("数字11.345不限制,小数精度3,结果是:%.3e" % num2)
        print("数字0.001234不限制,小数精度2,结果是:%.2g" % num3)  
        # 输出:
        # 数字11宽度限制5,结果是:   11  (数前面有3个空格,因为宽度限制为5)
        # 数字11.345宽度限制7,小数精度2,结果是:  11.35 (数前面有2个空格,保留两位小数)
        # 数字11.345不限制,小数精度2,结果是:11.35  (保留两位小数) 
        # 数字11.345不限制,小数精度3,结果是:1.135e+01  (科学计数法,保留三位小数)
        # 数字0.001234不限制,小数精度2,结果是:0.0012  (保留两位有效数字)
        
      • 2.str.format() 方法

        num1 = 11
        num2 = 11.345
        num3 = 0.001234
        num4 = 12345678.946
        print("数字11宽度限制5,结果是:{:5d}".format(num1))
        print("数字11.345宽度限制7,小数精度2,结果是:{:7.2f}".format(num2))
        print("数字11.345不限制,小数精度2,结果是:{:.2f}".format(num2))
        print("数字11.345不限制,小数精度3,结果是:{:.3e}".format(num2))
        print("数字0.001234不限制,小数精度2,结果是:{:.2g}".format(num3))
        # 输出:省略
        -------------------以下是%运算符没有的用法-----------------------print("数字12345678.946不限制,小数精度2,结果是:{:,.2f}".format(num4))
        print("数字11.345不限制,小数精度2,结果是:{:*>10.2f}".format(num2))
        print("数字0.001234不限制,小数精度2,结果是:{:.2%}".format(num3))
        #输出:
        # 数字12345678.946不限制,小数精度2,结果是:12,345,678.95 (千分位分隔符)
        # 数字11.345不限制,小数精度2,结果是:*****11.35  (右对齐,宽度10,填充*)
        # 数字0.001234不限制,小数精度2,结果是:0.12%     (百分比显示)
        
      • 3.f-strings(Python 3.6+)

      # 跟str.format() 方法 一样
      num1 = 11
      num2 = 11.345
      num3 = 0.001234
      num4 = 12345678.946
      print(f"数字11宽度限制5,结果是:{num1:5d}")
      print(f"数字11.345宽度限制7,小数精度2,结果是:{num2:7.2f}")
      print(f"数字11.345不限制,小数精度2,结果是:{num2:.2f}")
      print(f"数字11.345不限制,小数精度3,结果是:{num2:.3e}")
      print(f"数字0.001234不限制,小数精度2,结果是:{num3:.2g}")
      print(f"数字12345678.946不限制,小数精度2,结果是:{num4:,.2f}")
      print(f"数字11.345不限制,小数精度2,结果是:{num2:*>10.2f}")
      print(f"数字0.001234不限制,小数精度2,结果是:{num3:.2%}")
      # 输出:
      # 省略
      
      • 关键格式说明符

        • f:固定小数位数(如 .2f)。
        • e/E:科学计数法(小写/大写指数符号)。
        • g/G:自动选择 fe,控制有效数字(如 .3g)。
        • %:百分比格式(自动乘100并添加%)。
        • ,:千分位分隔符(如 {:,.2f})。
        • 对齐与填充<(左对齐)、>(右对齐)、^(居中),结合宽度和填充字符(如 :*>10.2f)。
  • 对表达式进行格式化
    • 表达式的定义

      • 一条具有明确执行结果的代码语句,例如:1+1、3*4、name = “小孤独”、age =16 这些都是表达式,因为有具体结果(变量的等号右侧为结果),结果是一个数字或者字符串。
    • 如何格式化表达式:

      print("1*1的结果是:%d" % (1*1))       # %运算符
      print("1*2的结果是:{}".format(1*2))  # str.format()
      print(f"2*3的结果是:{2*3}")          # f-strings
      print("字符串在Python中的类型名是:%s" % type("字符"))
      # 输出:
      # 1*1的结果是:1
      # 1*2的结果是:2.00
      # 2*3的结果是:6
      # 字符串在Python中的类型名是:<class 'str'>
      

09.数据输入

在Python中,我们使用input()语句,用来获取键盘输入:

  • 使用input()语句可以从键盘获取输入

  • 使用一个变量接收(存储)input语句获取的键盘输入数据即可
    示例:

    name = input("你是谁?")  # 输入:小孤独
    print(f"我是{name}")     # 输出:我是小孤独age = input("你多大了?")  # 16
    print(f"我{age}岁了,类型:{type(age)}") # 输出:我16岁了,类型:<class 'str'>
    

    从中可以发现:无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型

如有不当之处,欢迎指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/80262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32单片机的快速成长路径规划

一、基础准备阶段&#xff08;1-2周&#xff09; C语言核心技能 重点掌握&#xff1a;指针操作、结构体、枚举、位操作、函数指针&#xff08;回调函数基础&#xff09;实践项目&#xff1a;通过51单片机或STM8完成LED控制、按键检测等基础项目&#xff0c;熟悉寄存器配置和调试…

torch.nn.init.uniform_

nn.init.uniform_ 是 PyTorch 中用于初始化张量&#xff08;tensor&#xff09;的一个函数&#xff0c;它的作用是将张量的值填充为从均匀分布中采样的随机数。 详细说明&#xff1a; 函数&#xff1a; torch.nn.init.uniform_(tensor, a0., b1.)tensor&#xff1a;需要被初始…

Spring MVC中跨域问题处理

在Spring MVC中处理跨域问题可以通过以下几种方式实现&#xff0c;确保前后端能够正常通信&#xff1a; 方法一&#xff1a;使用 CrossOrigin 注解 适用于局部控制跨域配置&#xff0c;直接在Controller或方法上添加注解。 示例代码&#xff1a; RestController CrossOrigin…

基本句子结构

以下是英语句子五种基本结构的详细解释&#xff0c;并附上系动词的全面分类及示例&#xff1a; ​1. 主谓结构&#xff08;SV&#xff09;​ ​结构&#xff1a;主语&#xff08;Subject&#xff09; 不及物动词&#xff08;Intransitive Verb&#xff09;​核心&#xff1a;…

游戏引擎学习第264天:将按钮添加到分析器

回顾并为今天的工作做铺垫 随着时间的推移&#xff0c;我们的分析器&#xff08;profiler&#xff09;变得越来越强大。我通常会问大家是否记得我们要做什么&#xff0c;今天我们要做的似乎是按钮相关的功能。 今天的目标是实现按钮功能。我们从昨天留下的地方继续&#xff0…

大节点是选择自建机房还是托管机房

选择PCDN大节点自建机房还是托管机房&#xff0c;需综合考量资金实力、技术能力、运维需求、业务规模及合规要求。以下为具体分析&#xff1a; 自建机房的适用场景与考量因素 资金与技术门槛高 自建机房需投入服务器、存储、网络设备等硬件&#xff0c;以及机房建设、电力、散…

【SpringBoot】SpringBoot中使用AOP实现日志记录功能

前言一、AOP基本概念二、项目准备三、实现日志记录切面1、创建自定义日志注解2、实现日志切面3、配置AOP 四、使用示例1. 在Controller中使用2. 在Service中使用 六、高级配置1. 日志内容格式化2. 异步日志记录3. 日志脱敏处理 七、代理类生成的核心逻辑问题1&#xff1a; 既然…

linux中的常用命令(一)

目录 常用的快捷键 1- tab键:命令或者路径提示及补全&#xff1b; 2-ctrlc:放弃当前输入&#xff0c;终止当前任务或程序 3-ctrll;清屏 4-ctrlinsert:复制 5-鼠标右键:粘贴&#xff1b; 6-altc:断开连接/ctrlshift r 重新连接 7-alt1/2/3/等&#xff1a;切换回话窗口 8-上下键…

Pycharm(十九)深度学习

一、深度学习概述 1.1 什么是深度学习 深度学习是机器学习中的一种特殊方法,它使用称为神经网络的复杂结构,特别是“深层”的神经网络,来学习和做出预测。深度学习特别适合处理大规模和高维度的数据,如图像、声音和文本。深度学习、机器学习和人工智能之间的关系如下图所…

多视图密集对应学习:细粒度3D分割的自监督革命

原文标题&#xff1a;Multi-view Dense Correspondence Learning (MvDeCor) 引言 在计算机视觉与图形学领域&#xff0c;3D形状分割一直是一个基础且具有挑战性的任务。如何在标注稀缺的情况下&#xff0c;实现对3D模型的细粒度分割&#xff1f;近期&#xff0c;斯坦福大学视觉…

Vue——前端vue3项目使用汉字转拼音

在 Vue3 项目中&#xff0c;可以通过以下 第三方 JavaScript 包 实现汉字转拼音。这些包均兼容 Vue3&#xff0c;且无需依赖后端处理&#xff1a; 推荐方案 1. pinyin-pro 特点&#xff1a;功能强大、支持多音字、声调、拼音匹配、轻量级&#xff08;~20KB&#xff09;。安装…

批量统计PDF页数,统计图像属性

软件介绍&#xff1a; 1、支持批量统计PDF、doc\docx、xls\xlsx页数 2、支持统计指定格式文件数量&#xff08;不填格式就是全部&#xff09; 3、支持统计JPG、JPEG、PNG图像属性 4、支持统计多页TIF页数、属性 5、支持统计PDF、JPG画幅 统计图像属性 「托马斯的文件助手」…

LeetCode 每日一题 2025/5/5-2025/5/11

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 5/5 790. 多米诺和托米诺平铺5/6 1920. 基于排列构建数组5/7 3341. 到达最后一个房间的最少时间 I5/8 3342. 到达最后一个房间的最少时间 II5/9 3343. 统计平衡排列的数目5…

pytest自动化测试执行环境切换的两种解决方案

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、痛点分析 在实际企业的项目中&#xff0c;自动化测试的代码往往需要在不同的环境中进行切换&#xff0c;比如多套测试环境、预上线环境、UAT环境、线上环…

visual studio 2015 安装闪退问题

参考链接&#xff1a; VS2012安装时启动界面一闪而过问题解决办法 visual studio 2015 安装闪退问题

RocketMQ Kafka区别

架构 ZooKeeper&#xff1a;管理 Broker 注册、分区 Leader 选举及消费者组状态。Broker&#xff1a;存储 Partition数据&#xff0c;每个 Partition 为独立日志文件。Producer/Consumer&#xff1a;通过 ZooKeeper获取路由信息&#xff0c;实现消息分发与消费。 NameServer&am…

MySQL进阶篇2_SQL优化、锁

文章目录 1 SQL优化1.1插入数据优化1.2主键优化页分裂页合并主键设计原则 1.3order by设计优化1.4group by设计优化小理解 1.5limit设计优化顺序IO和随机IO小疑惑 1.6count设计优化1.7update优化关于隐式事务事务的DML操作 锁全局锁表级锁表锁元数据锁意向锁 行级锁锁的释放条件…

如何测试 esp-webrtc-solution_solutions_doorbell_demo 例程?

软件准备 esp-webrtc-solution/solutions/doorbell_demo 例程 此例程集成了 WebSocket 传输视频流的应用 硬件准备 ESP32P4-Function-Ev-Board 环境搭建 推荐基于 esp-idf v5.4.1 版本的环境来编译此例程 若编译时出现依赖的组件报错&#xff0c;可进行如下修改&#xff…

TransmittableThreadLocal:穿透线程边界的上下文传递艺术

文章目录 前言一、如何线程上下文传递1.1 ThreadLocal单线程1.2 InheritableThreadLocal的继承困境1.3 TTL的时空折叠术 二、TTL核心设计解析2.1 时空快照机制2.2 装饰器模式2.3 采用自动清理机制 三、设计思想启示四、实践启示录结语 前言 在并发编程领域&#xff0c;线程上下…

【数据结构】——栈

一、栈的概念和结构 栈其实就是一种特殊的顺序表&#xff0c;其只允许在一端进出&#xff0c;就是栈的数据的插入和删除只能在一端进行&#xff0c;进行数据的插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的元素遵循先进后出LIFO&#xff08;Last InFirst O…