2025python学习笔记

news2025/5/11 14:20:02

一.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 = 50
    
    print("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 = x
    
    print(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.coloradmin.cn/o/2373186.html

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

相关文章

【并发编程】基于 Redis 手写分布式锁

目录 一、基于 Redis 演示超卖现象 1.1 Redis 超卖现象 1.2 超卖现象解决方案 二、Redis 的乐观锁机制 2.1 原生客户端演示 2.2 业务代码实现 三、单机部署 Redis 实现分布式锁 3.1 分布式锁的演变和升级 3.2 setnx 实现分布式锁 3.2.1 递归调用实现分布式锁 3.2.2 循…

Jsp技术入门指南【十二】自定义标签

Jsp技术入门指南【十二】自定义标签 前言一、什么是标签二、标签的类型有哪些&#xff1f;1. 空标签2. 带有属性的标签3. 带主体的标签 三、自定义标签的部件3.1 自定义标签的四步骤3.2 标签处理程序3.3 自定义标签的开发及使用步骤第一步&#xff1a;创建标签助手类第二步&…

Java—— 泛型详解

泛型概述 泛型是JDK5中引入的特性&#xff0c;可以在编译阶段约束操作的数据类型&#xff0c;并进行检查。 泛型的格式&#xff1a;<数据类型> 注意&#xff1a;泛型只能支持引用数据类型。 泛型的好处 没有泛型的时候&#xff0c;可以往集合中添加任意类型的数据&#x…

GPT-4o, GPT 4.5, GPT 4.1, O3, O4-mini等模型的区别与联系

大模型时代浪潮汹涌,作为其中的领军者,OpenAI 其推出的系列模型以强大的能力深刻影响着整个行业,并常常成为业界其他公司对标和比较的基准。因此,深入了解 OpenAI 的大模型,不仅是为了使用它们,更是为了理解当前大模型的能力边界和发展趋势,这对于我们评估和选择其他各类…

Kubernetes生产实战(十二):无工具容器网络连接数暴增指南

当线上容器突然出现TCP连接数暴涨&#xff0c;而容器内又没有安装任何调试工具时&#xff0c;如何快速定位问题&#xff1f;本文将分享一套经过大型互联网公司验证的排查方案&#xff0c;涵盖从快速应急到根因分析的全流程。 一、快速锁定问题容器 查看pod 连接数方式&#x…

MySQL的Order by与Group by优化详解!

目录 前言核心思想&#xff1a;让索引帮你“排好序”或“分好组”Part 1: ORDER BY 优化详解1.1 什么是 Filesort&#xff1f;为什么它慢&#xff1f;1.2 如何避免 Filesort&#xff1f;—— 利用索引的有序性1.3 EXPLAIN 示例 (ORDER BY) Part 2: GROUP BY 优化详解2.1 什么是…

软件测试——用例篇(3)

目录 一、设计测试用例的具体方法 1.1等价类 1.1.1等价类概念介绍 1.1.2等价类分类 1.2边界值 1.2.1边界值分析法 1.2.2边界值分类 1.3正交法 1.3.1正交表 1.3.2正交法设计测试用例步骤 1.4判定表法 1.4.1判定表 1.4.2判定表方法设计测试用例 1.5 场景法 1.6错误…

在 Win11 下安装 Wireshark 的详细步骤

目录 一、了解 Wireshark1. 作用和功能2. 使用步骤 二、下载安装包三、运行安装包四、使用 Wireshark1. 抓包2. 窗口介绍3. 过滤器&#xff08;显示 / 捕获过滤器&#xff09;4. 保存过滤后的报文1&#xff09;显示过滤器表达式&#xff08;了解&#xff09;2&#xff09;过滤表…

AI编程: 使用Trae1小时做成的音视频工具,提取音频并识别文本

背景 在上个月&#xff0c;有网页咨询我怎么才能获取视频中的音频并识别成文本&#xff0c;我当时给他的回答是去问一下AI&#xff0c;让AI来给你答案。 他觉得我在敷衍他&#xff0c;大骂了我一顿&#xff0c;大家觉得我的回答对吗&#xff1f; 小编心里委屈&#xff0c;我…

RTC实时时钟DS1337S/PT7C4337WEX国产替代FRTC1337S

NYFEA徕飞公司的FRTC1337S串行实时时钟是一种低功耗时钟/日历&#xff0c;被设计成可以无缝替代市场上流行的DS1337S和PT7C4337WEX(SOP8)两种型号, 具有两个可编程的时钟闹钟和一个可编程方波输出。 地址和数据通过2线双向总线串行传输。时钟/日历提供秒、分钟、小时、天、日期…

Vue3.5 企业级管理系统实战(十七):角色管理

本篇主要探讨角色管理功能&#xff0c;其中菜单权限这里先不实现&#xff0c;后续在菜单管理中再进行实现。接口部分依然是使用 Apifox mock 的。 1 角色 api 在 src/api/role.ts 中添加角色相关 api&#xff0c;代码如下&#xff1a; //src/api/role.ts import service fro…

QTableWidget实现多级表头、表头冻结效果

最终效果&#xff1a; 实现思路&#xff1a;如果只用一个表格的话写起来比较麻烦&#xff0c;可以考虑使用两个QTableWidget组合&#xff0c;把复杂的表头一个用QTableWidget显示&#xff0c;其他内容用另一个QTableWidget。 #include "mainwindow.h" #include &qu…

A2A大模型协议及Java示例

A2A大模型协议概述 1. 协议作用 A2A协议旨在解决以下问题&#xff1a; 数据交换&#xff1a;不同应用程序之间的数据格式可能不一致&#xff0c;A2A协议通过定义统一的接口和数据格式解决这一问题。模型调用&#xff1a;提供标准化的接口&#xff0c;使得外部应用可以轻松调…

CMake 入门实践

CMake 入门实践 第一章 概念与基础项目1.1 CMake 基础认知1.2 最小 CMake 项目1.3 构建流程验证 第二章 多文件项目管理2.1 项目结构2.2 源码示例2.3 CMake 配置 第三章 库文件管理实战3.1 项目结构3.2 核心配置3.3 接口设计 第四章 构建类型与编译优化4.1 构建类型配置4.2 构建…

异地多活单元化架构下的微服务体系

治理服务间的跨IDC调用&#xff0c;而数据库层面还是要跨IDC 服务注册中心拆开、 金融要求&#xff0c;距离太远&#xff0c;异地备库&#xff0c;如果延迟没读到数据就可能有资损&#xff0c;IDC3平时不能用&#xff0c;IDC1挂了还是有数据同步问题&#xff0c;IDC3日常维护…

HarmonyOS NEXT——DevEco Studio的使用(还没写完)

一、IDE环境的搭建 Windows环境 运行环境要求 为保证DevEco Studio正常运行&#xff0c;建议电脑配置满足如下要求&#xff1a; 操作系统&#xff1a;Windows10 64位、Windows11 64位 内存&#xff1a;16GB及以上 硬盘&#xff1a;100GB及以上 分辨率&#xff1a;1280*8…

Windows系统Jenkins企业级实战

目标 在Windows操作系统上使用Jenkins完成代码的自动拉取、编译、打包、发布工作。 实施 1.安装Java开发工具包&#xff08;JDK&#xff09; Jenkins是基于Java的应用程序&#xff0c;因此需要先安装JDK。可以从Oracle官网或OpenJDK下载适合的JDK版本。推荐java17版本&#x…

C# 方法(ref局部变量和ref返回)

>本章内容: 方法的结构 方法体内部的代码执行 局部变量 局部常量 控制流 方法调用 返回值 返回语句和void方法 局部函数 参数 值参数 引用参数 引用类型作为值参数和引用参数 输出参数 参数数组 参数类型总结 方法重载 命名参数 可选参数 栈帧 递归 ref局部变量和ref返回 …

滑动窗口,438找出字符串中所有字母的异位词

1.题目 2.解析 这道题我们用滑动窗口来实现&#xff0c;加上哈希表和vector容器的使用来实现这道题目&#xff0c;每次滑动之后我们都对其和答案进行比较&#xff0c;如果全部相等我们返回left&#xff0c;不相等继续滑动即可。 本质就是我们把p中相同数量的字母框起来&#…

「国产嵌入式仿真平台:高精度虚实融合如何终结Proteus时代?」——从教学实验到低空经济,揭秘新一代AI赋能的产业级教学工具

引言&#xff1a;从Proteus到国产平台的范式革新 在高校嵌入式实验教学中&#xff0c;仿真工具的选择直接影响学生的工程能力培养与创新思维发展。长期以来&#xff0c;Proteus作为经典工具占据主导地位&#xff0c;但其设计理念已难以满足现代复杂系统教学与国产化技术需求。…