Task04 :Variables and Functions

news/2024/12/2 21:17:28/文章来源:https://www.cnblogs.com/HJHDYT/p/18582752

变量

在Python中,变量是用来存储数据的。它不需要像C语言中需要对变量的类型进行定义,Python会根据赋值自动确认变量的类型。

变量的命名规则 :

  • 必须以字母或下划线开头。
  • 只能包含数字、字母、下划线。

变量只是一个名称,用于与数据进行联系。
定义变量时,现在内存空间中申请一块地址用于存放数据。如果把这个地址比作房间,数据是房间中的东西,而变量名是房间号。
调用变量时,先通过变量找到房间(地址),再取出其中的东西(数据)。
可以通过id()获取数据的地址,通过type()获取数据的类型。
要注意的是:当相同的值赋给不同变量时,地址不同。例如 :a = 520 b = 520这两个值的地址是不同的。但如果是a = b =520a和b拥有相同的地址,相当于是将520这个数据同时指向了a和b。

垃圾回收机制

这个机制的存在是为了自动管理内存,释放不在使用的对象所占用的空间。相较于C语言中使用free()进行释放空间更加简便。

  • 引用计数 :每个对象都有一个引用计数,当引用计数为 0 时,对象被回收。
  • 标记 - 清除 :定期对对象进行标记,并清除那些不可达的对象。使用del,例如 :del a

一般在以下情况中会触发立即回收机制 :

  • 当程序中分配的内存达到一定阈值时,会触发垃圾回收。
  • 当执行某些特定操作时,如删除对象退出程序等,也会触发垃圾回收。

小整数池

这是Python中的一个特性,是基于垃圾回收机制产生的,有助于减少内存消耗和提高性能,要注意的是在Python3中是只对范围在 [-5, 256] 之间的整数生效。但是在Pycharm中,对这个特性进行了拓展,只要是相同的数据都会使用相同的地址
在 Python 中,为了避免频繁地创建和销毁小整数对象,提高内存利用效率,Python 内部维护了一个小整数池。
对于范围在 [-5, 256] 之间的整数,当你在程序中多次使用这些整数时,实际上是在复用同一个对象。这是因为 Python 在启动时就预先创建了这些小整数的对象,并将它们存储在小整数池中。
当你使用超出这个范围的整数时,每次都会创建新的对象。


函数

定义函数

Python中通过def进行函数的定义。

def 函数名(参数列表):# 函数体语句

例如 :定义一个函数用于求1~n数字的和。

def sum(n):total = 0for i in range(1, n + 1):total += ireturn total

调用函数

Python中包含许多函数,执行dir(__builtins__)可以查看Python中所有的内置函数。
输入输出函数

  • print()输出括号中内容

  • input()将键入的内容存入变量
    类型转换函数

  • int()将值转换成整数

  • str()将值转换成浮点数

  • str()将值转换成字符串

  • list()tuple()dict()set()用来把其他类型的数据转换成列表、元组、字典和集合;或者创建空列表、空元组、空字典和空集合。

  • eval()用来计算字符串或字节串的值;也可以用来实现类型转换的功能,如把字符串形式转换成列表、元组、字典、集合等。例如 :

>>> eval('3+5')
8
>>> eval('[1,2,3,4,5]')
[1, 2, 3, 4, 5]
>>> list('[1,2,3,4,5]')
['[', '1', ',', '2', ',', '3', ',', '4', ',', '5', ']']
  • 内置函数type()isinstance()可以判断数据类型。
  • sorted()对列表、元组、字典、集合或其他可迭代对象进行排序并返回新列表。例如 :
>>> x = ['aaaa', 'bc', 'd', 'b', 'ba']
>>> sorted(x, key=lambda item: (len(item), item))
#先按长度排序,长度一样的正常排序
['b', 'd', 'ba', 'bc', 'aaaa']
  • range()语法格式为range([start,] end [, step] ),返回具有惰性求值特点的range对象,其中包含左闭右开区间[start,end)内以step为步长的整数。参数start默认为0,step默认为1。
>>> range(5) #start默认为0,step默认为1
range(0, 5)
>>> list(_)
[0, 1, 2, 3, 4]
>>> list(range(1, 10, 2)) #指定起始值和步长
[1, 3, 5, 7, 9]
>>> list(range(9, 0, -2)) #步长为负数时,start应比end大
[9, 7, 5, 3, 1]

Python的内置函数还有许多。


关于函数的参数,Python与C语言几乎相同。


递归

也与C语言几乎相同。即在返回值中继续调用函数。

def sum(n) :if n == 1:return 1else :return n + sum(n - 1)

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

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

相关文章

canal的安装搭建

canal介绍主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。 这里我们可以简单地把canal理解为一个用来同步增量数据的一个工具。canal能做什么数据库镜像 数据库实时备份 索引构建和实时维护 业务cache(缓存)刷新 带业务逻辑的增量数据处理首先开启mysql bi…

ctfshow 信息搜集web入门思路

做ctfshow的思路(web2)js前台拦截 无法使用f12打开代码 可以使用 ctrl+u 或者在网站前面加上view-source: 或者使用bp进行抓包(web4)robots.txt 中可能包含着信息(web5)phps源码泄露index.phps(web6)源码泄露 www.zip 泄露(web7)/.git/ 源文件泄露(web8)index.p…

分区函数partition by的基本用法【转载】

本章将和大家分享分区函数partition by的基本用法。本章将和大家分享分区函数partition by的基本用法(此处以MySQL为例)。废话不多说,下面我们直接进入主题。 一、建表语句-- 创建商品表 CREATE TABLE commodity (id int NOT NULL PRIMARY KEY COMMENT 主键,position VARCHA…

JavaSwing外观美化

系统可选风格 windows风格: com.sun.java.swing.plaf.windows.WindowsLookAndFeelwindows Classic风格: com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel Metal风格 ( Swing默认) :avax.swing.plaf.metal.MetalLookAndFeel Motif风格 : com.sun.java.swing.plaf…

网络架构

二层交换机电脑通过网线与交换机连接,形成局域网 发送信息时,电脑将信息发给交换机广播,传给其他电脑。 路由器为了避免广播风暴,引出路由器,通过路由器连接每个交换机 路由器上会配置网关,从而识别每个局域网,将消息发到特定的局域网中

MySQL底层概述—9.ACID与事务

大纲 1.ACID之原子性 2.ACID之持久性 3.ACID之隔离性 4.ACID之一致性 5.ACID的关系 6.事务控制演进之排队 7.事务控制演进之排它锁 8.事务控制演进之读写锁 9.事务控制演进之MVCC 10.事务隔离级别之隔离级别的类型 11.事务隔离级别之和锁的关系 12.事务隔离级别之隔离级别的控制…

信息安全概论复习4

数字签字和身份识别报文鉴别(接收方鉴别报文真伪)报文源鉴别(发方鉴别)报文宿鉴别(收方鉴别)报文时间性鉴别(能够挫败重播攻击) 初始向量法(事先约定一组初始向量Zi,Zi作为初始向量链接加密第i份报文Mi,只有对应才能还原,重点在加密)时间参数法(类似时间戳,第i份报文…

【知识】模拟退火

模拟退火算法!模拟退火 概念:温度(步长):初始温度 \(T\)终止温度衰减系数 $ 0 \sim 1$随机选择一个点: \(f(新点) - f(当前点) = \Delta E\)\(\Delta E < 0\) 跳到新点 \(\Delta E>0\) 以一定概率跳过去,概率为 \(e^{- \frac{\Delta E}{T}}\)过程如下图:题型:A…

实验五 C语言指针应用编程

实验五 C语言指针应用编程 实验任务1——数组求最大最小值 #include <stdio.h> #define N 5 void input(int x[], int n); void output(int x[], int n); void find_min_max(int x[], int n, int* pmin, int* pmax); int main() {int a[N];int min, max;printf("录入…

使用Tauri创建桌面应用

当前是在 Windows 环境下 1.准备系统依赖项Microsoft C++ 构建工具WebView2 (Windows10 v1803 以上版本不用下载,已经默认安装了)下载安装 Rust 下载安装 Rust 需要重启终端或者系统重新打开cmd,键入rustc --version,出现 rust 版本号,说明安装成功 2.开始 #npm npm create…

【windows工作合集】 远程连接出现问题记录

问题记录:由于需求要登录本地windows的虚拟机 但是在输入用户信息/密码都正确的情况下出现上面截图的问题 于是就百度进行查阅解决--主要就是说我这边机器可能是因为系统更新或者一些注册表的问题导致信息对不上,所以被认为无法登录 (系统更新。微软系统补丁的更新将 CredSSP…

AGC032 VP记录

A 17:35 +0 B 39:51 +0 C 80:28 +4 A.Limited Insertion 简要题面: 最初有一个空序列,每次操作选定一个 \(i\) 并把 \(i\) 插入到位置 \(i\) ,给定最终序列,构造一种合法方案或者输出 -1 。 \(n \leq 100\) 做法: 简单思考发现每次操作出来的数一定从后往前对应了最终序列…