news 2026/5/14 16:56:02

Python语法基础笔记(四)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python语法基础笔记(四)
一、类型转换
  1. int ():转换为一个整数,只能转换由纯数字组成的字符串

    • float->int : 会去掉小数点及后面的阿数值,只保留整数部分

    • str-> int : 如果字符串中有数字和正负号(+-)以外的字符就会报错(+-写在前面表示正负号,不可以写后面)

      # 用户输入年龄,判断成年 age = int(input("请输入年龄:")) # input默认输入字符串, 强制转换为整型 if age >= 18: print("成年") else: print("未成年")
  2. float () : 转换为一个小数

    • int -> float : 整型转换为浮点型,会自动添加以为小数 5----> 5.0

    • str -> float: 如果字符串中有正负号、数字和小数点以外的字符,则不支持转换

  3. str () : 转换为字符串,任何类型都可以转换成字符串类型

    • float-> str : 会取出末位为0 的小数部分 -1.000 ---“ -1.0” 2.00 ---"2.0" 2.1200----"2.12"

    • list -> str : 输出形式和列表相同,但是已经是字符串类型了

  4. eval () : 用来执行一个字符串表达式,并返回表达式的值

    • eval("10+10") -----> 20 执行运算,并返回运算值

    • eval("10"+"10")----> 1010

    • eval(10+"20") ----> 报错,整型和字符串不可以相加

    • eval("[[1,2],[3,4],[5,6]]") -----> [[1,2],[3,4],[5,6]]**可以实现list、dict、tuple和str之间的转换**

    • eval() 很强大。但不够安全,容易恶意修改数据

  5. list () : 将可迭代对象转换成列表

    • 支持转换为list的类型:str、tuple、dict、set

    • str ->list : list("abc") ---->['a', 'b', 'c']

    • tuple ->list : list(("a","b","c")) ----> ['a', 'b', 'c']

    • dict->list : list({"name": "小陈","age": 18}) ---->['name', 'age'] 字典转换成列表,会取键名作为列表的值

    • set ->list : list({"a","b","c"}) ---->['b', 'a', 'c'] 由于集合是无序的,生成列表的元素也是无序的。如果重复,先去重,再转换。

  6. tuple () : 转换成元组

    • tuple("abc") # 字符串转换成元组

    • tuple([1,2,3,4,5])# 列表转换成元组

    • tuple({"name": "小陈","age": 18}) # 字典转换成元组

    • tuple({1,2,3,4,5})## 集合转换成元组

  7. set () : 转换成集合

    • set("abc")# 字符串转换成集合

    • set([1,2,3,4,5])# 列表转换成集合

    • set({"name": "小陈","age": 18})# 字典转换成集合

    • set(tuple([1,2,3,4,5])) # 元组转换成集合

  8. dict (): 转换成字典

    • dict([("name", "小陈"),("age", 18)])# 列表转换成字典

二、深浅拷贝
  1. 赋值:

    a =[1,2,3]

    b=a

    等于完全共享资源,一个值的改变会完全被另一个值共享

    变量内存地址相同

  2. 浅拷贝:

    • 数据半共享

    • 会创建新的对象,拷贝第一层的数据,嵌套层会指向原来的内存地址

    • 需要导入copy模块 格式: b=copy.copy(a)

    • 两个变量的内存地址不一样,说明不是一个对象了 --查看内存地址 id(a) id(b)

    • 外层的内存地址不同,但是内层的内存地址是相同的

    • 优点:拷贝速度比较快、占用空间少、拷贝效率高

    import copy a =[1,2,3,[4,5]] b=copy.copy( a) a.append(6) # 往列表添加元素 a[3].append(7) # 往嵌套列表添加元素 print(a,id(a),id(a[3]),"\n",b,id(b),id(b[3])) #a----- [1, 2, 3, [4, 5, 7], 6] 1540123463616 1540123462976 #b----- [1, 2, 3, [4, 5, 7]] 1540123470656 1540123462976
  3. 深拷贝:

    数据完全不共享

    外层的对象和内层的元素都拷贝了一遍

    需要导入copy模块 格式:b = copy.deepcopy(a)

    深拷贝数据变化只影响自己本身,跟原来的对象没有关联

    import copy a =[1,2,3,[4,5]] b=copy.deepcopy( a) a.append(6) # 往列表添加元素 a[3].append(7) # 往嵌套列表添加元素 print(a,id(a),id(a[3]),"\n",b,id(b),id(b[3])) # [1, 2, 3, [4, 5, 7], 6] 1736682377152 173668237651 # [1, 2, 3, [4, 5]] 1736682384192 1736682356800
三、可变对象
  1. 含义:

    • 存储空间保存的数据允许被修改,这种数据就是可变类型

    • 变量对应的值可以修改,但是内存地址不会发生改变 (可使用id()验证,内存地址)

  2. 常见类型:

    • 列表 list

    • 字典 dict

    • 集合 set

  3. 注意:深浅拷贝只针对可变对象

四、不可变对象
  1. 含义:

    • 存储空间保存的数据不允许被修改,这种数据就是不可变类型

    • 变量对应的值不能被修改,如果修改就会生成一个新的值从而分配新的内存空间

    • 内存地址不一样: 修改值就会生成新的值,重新赋值给变量

  2. 常见类型:

    1. 数值类型:int、bool、float、complex

    2. 字符串: str

    3. 元组:tuple(元组不支持新增删除和修改操作,只能重新定义,因此,内存地址就会改变)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 20:12:36

16、Linux系统用户、组管理及文本流处理实用指南

Linux系统用户、组管理及文本流处理实用指南 1. 用户与组管理基础 在Linux系统中,用户和组管理是系统管理员的重要工作。所有用户账户信息存储在 /etc/passwd 文件中,每行定义一个用户,包含以下字段: - 用户名 - 密码 - 用户ID(UID) - 组ID(GID) - 注释 - 主…

作者头像 李华
网站建设 2026/5/9 2:48:16

26、SSH在跨系统文件访问中的应用与配置

SSH在跨系统文件访问中的应用与配置 1. 架构需求概述 从架构角度来看,关键需求相对较少。由于工程部门位于内部网络,而Windows文件服务器也处于该网络中,默认情况下每个客户端都能够访问该服务器。所有客户端需要使用OpenSSH SFTP客户端来访问SSH服务器上的SFTP子系统,或…

作者头像 李华
网站建设 2026/5/9 2:08:44

Harmony开发之设备发现与连接——分布式操作的起点

Harmony开发之设备发现与连接——分布式操作的起点 引入:自动发现附近可用设备 想象一下这样的场景:当你走进家门,手机自动发现并连接上家里的智能音响,开始播放你喜欢的音乐;当你在会议室做演示时,平板自动…

作者头像 李华
网站建设 2026/5/10 15:18:34

当科研不再“大海捞针”:用智能工具重构你的期刊论文探索路径

在当今学术生态中,期刊论文不仅是知识的载体,更是科研工作者的“第二语言”。然而,面对浩如烟海的文献海洋,如何精准定位关键信息、高效追踪领域前沿、系统梳理研究脉络,成了无数研究者日复一日的“隐性负担”。传统数…

作者头像 李华
网站建设 2026/5/14 10:39:49

23、安全Web环境中的代理技术

安全Web环境中的代理技术 1. 代理服务器与SSH概述 在任何网络环境中,代理服务器的使用都能简化终端用户的操作环境。代理服务器是一种代表其他实体发起请求的应用程序。如今,大多数使用的代理服务器是Web代理。当客户端机器尝试访问某个Web服务器时,它会将请求发送给Web代…

作者头像 李华
网站建设 2026/5/14 10:39:47

如何快速安装Qt 5.14.2:面向Linux新手的完整指南

如何快速安装Qt 5.14.2:面向Linux新手的完整指南 【免费下载链接】Qt5.14.2开源版Linuxx64安装文件下载 Qt 5.14.2 开源版 Linux x64 安装文件下载 项目地址: https://gitcode.com/Open-source-documentation-tutorial/3ce16 Qt 5.14.2 是一个功能强大的跨平…

作者头像 李华