Python3编程基础-变量与计算器

news2025/7/6 20:42:04

变量与计算器

简单计算器

下面来做一个简单计算器,完成普通计算器功能。
打开IDlE,输入以下脚本进行计算。

>>> 3+4
7
>>> 6-(8*2)
-10
>>> (5*2+34)*(4+5)
396
>>> 

每一行都是一个Python语句,如果可能的话,它们会被自动求值。只要算式表述正确,不用担心运算符优先级问题,Python就会自动处理好的。

变量与常量

上述简单的运算功能不是这个计算器的全部,接着来扩充一下:

>>> x=12
>>> (x+1)*(x+2)
182
>>> 

上面程序中x是一个变量。
那么什么是变量呢?“变量”来自一个拉丁文字,“变”意思是“可以改变”,程序设计中的变量来源于数学。

在初等数学中,变量是表示数字的字母字符,具有任意性和未知性。可把变量当作是显式数字一样,对其进行代数计算,可以在单个计算中解决很多问题,例如:函数y
= f(x)涉及两个变量y和x,分别表示函数的值和参数。 术语“变量”来源于当参数(也称为“函数的变量”)变化时,值相应变化。而在高等数学中,变量是表示数学对象的符号,可以是数字,向量,矩阵,甚至是函数。

类似地,在计算机科学中,变量是表示计算机存储器中表示的值的名称(通常是字母字符或与字母与数字的组合),变量涉及了2个概念:变量名和变量值 ,变量名是变量的一个代号,通过这个代号可以找到变量,而变量值是变量名对应的值。
可以这么形象地理解变量:一台中巴公交车内有很多座位,每个座位都可以视为车内的一个变量,按从左到右,从前到后的顺序给座位编上号,比如1号座位、2号座位等等 ,多少号座位视为变量名,随着客人上车下车,座位里会坐不同的乘客,这些乘客就是变量值。

具体来说,在程序设计中,变量(Variable)是指一个包含部分已知或未知数值或信息(即变量值)之存储地址,以及相对应之符号识别字(即变量名)。通常使用变量名称引用存储值,将名称和内容分开可让被使用的名称独立于所表示的精确值。
Python变量名称能在运行期间绑定一个值,且该变量的值可能在程序运行期间改变。

上述程序代码中,x作为一个变量,可能随时改变,它可以像12、1、2这样的不变的数一样参与运算,参与运算的值以当时运算时的绑定的值为准,上述程序代码中,x绑定了值为12。

与变量对应的是常量。常量的值固定不变,在计算机程序运行时,不会被程序修改。上述程序中12、1、2属于常量。

数据类型

Python3 中有六个标准的数据类型,如下所示。

在这里插入图片描述

可变否一栏,不是指变量值能不能修改,而是指存储变量值的内存地址会不会变化,简单来说,可变表示当变量重新赋值后,Python3解释器还是使用其原来的内存空间,而不可变表示,一旦变量重新赋值后,Python3解释器就会重新分配一个新的内存空间存放新的值或者使用该值已经有的内存地址,不会使用变量赋值前指向的值的内存地址,该值如果在后面的程序不再使用。

垃圾回收器(Python的垃圾回收基于引用计数,开发者完成可以不用关心其内部的垃圾回收机制)将把原来的值占用的内存回收。

可变与不可变在普通场景应用中几乎没区别,只是内存分配和使用问题(对程序员不可见),但对于函数参数来说,区别很大:
首先,明确一点:函数参数本质都是函数调用者参数的复制品,函数参数为函数内部局部变量,复制过来的值作为该局部变量的值,函数参数和函数调用传入的参数指向同一内存地址。
其次,不可变数据类型无法修改。即使在函数内部对参数进行了重新赋值,只是改变了参数本身指向的内存地址,这样会导致函数内部的参数和函数调用者传入的参数指向的内存地址不一样,但没有改变函数调用者使用的原有内存地址存放的内容。
最后,可变数据类型可以修改。函数内部修改其参数时,不会使用新的内存地址,而是直接修改内存地址(引用)指向的值,这样会导致函数调用者使用的参数值也被改变。

复数概述

什么是复数

把形如z=a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位。当z的虚部等于零时,常称z为实数;当z的虚部不等于零时,实部等于零时,常称z为纯虚数。

复数的运算

(1)复数的加法按照以下规定的法则进行:设z1=a+bi,z2=c+di是任意两个复数,
则它们的和是 (a+bi)+(c+di)=(a+c)+(b+d)i。
两个复数的和依然是复数,它的实部是原来两个复数实部的和,它的虚部是原来两个虚部的和。
(2)复数的减法按照以下规定的法则进行:设z1=a+bi,z2=c+di是任意两个复数,则它们的差是 (a+bi)-(c+di)=(a-c)+(b-d)i。
两个复数的差依然是复数,它的实部是原来两个复数实部的差,它的虚部是原来两个虚部的差。
(3)规定复数的乘法按照以下的法则进行:
设z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的积(a+bi)(c+di)=(ac-bd)+(bc+ad)i。
两个复数的积仍然是一个复数。
(4)复数除法运算满足(c+di)(x+yi)=(a+bi)的复数x+yi(x,y∈R)叫复数a+bi除以复数c+di的商。
运算方法:可以把除法换算成乘法做,在分子分母同时乘上分母的共轭。所谓共轭你可以理解为加减号的变换,互为共轭的两个复数相乘是个实常数。

复数的几何意义

复数z=a+bi(a、b∈R)与有序实数对(a,b)是一一对应关系 这是因为对于任何一个复数z=a+bi(a、b∈R),由复数相等的定义可知,可以由一个有序实数对(a,b)惟一确定。
如z=3+2i可以由有序实数对(3,2)确定,又如z=-2+i可以由有序实数对(-2,1)来确定;又因为有序实数对(a,b)与平面直角坐标系中的点是一一对应的,如有序实数对(3,2)它与平面直角坐标系中的点A,横坐标为3,纵坐标为2,建立了一一对应的关系。
由此可知,复数集与平面直角坐标系中的点集之间可以建立一一对应的关系。

复数编程

>>> x=complex(1,5)
>>> y=complex(5,8)
>>> x+y
(6+13j)
>>> x-y
(-4-3j)
>>> x*y
(-35+33j)
>>> y/x
(1.7307692307692306-0.6538461538461539j)
>>> pow(x,2)
(-24+10j)
>>> y**3
(-835+88j)
>>> x**2
(-24+10j)
>>> x**(1/8)
(1.207825826103332+0.20941498457007715j)

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

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

相关文章

Java并发-为什么主线程结束了,程序却没有关闭呢?

守护线程与用户线程的定义及区别 Java 中的线程分为两类,分别为 daemon 线程(守护线程)和 user 线程(用户线程)。 在 JVM 启动时会调用 main 函数, main 函数所在的线程就是一个用户线程,其实…

TCP协议灵魂之问

先亮出这篇文章的思维导图: TCP 作为传输层的协议,是一个软件工程师素养的体现,也是面试中经常被问到的知识点。在此,我将 TCP 核心的一些问题梳理了一下,希望能帮到各位。 001. 能不能说一说 TCP 和 UDP 的区别? 首…

四十分钟带你玩儿转Python-OpenCV(一)

14天学习训练营导师课程: 李宁《Python Pygame游戏开发入门与实战》 李宁《计算机视觉OpenCV Python项目实战》1 李宁《计算机视觉OpenCV Python项目实战》2 李宁《计算机视觉OpenCV Python项目实战》3 OpenCV是一个基于BSD许可(开源)发行的跨…

基于keras 卷积神经外网络搭建的手写数字识别 完整代码+数据可直接运行

项目介绍: 适合新手入门学习代码数据很简洁 上结果: 主要的卷积神经网络: 卷积是指在滑动中提取特征的过程,可以形象地理解为用放大镜把每步都放大并且拍下来,再把拍下来的图片拼接成一个新的大图片的过程。 2D卷积是一个相当简单的操作: 我们先从一个小小的权重矩阵…

iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入(宽字节注入)

系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 目录 系列文章目录 前言 第02关 字符型注入 1.源码分析 2.字符型宽字节注入 (1)渗透方法1: (2)渗透方法2: &am…

Git 分支管理详解

1.前言 我们先来说一个简单的案例吧,你们团队中有多个人再开发一下项目,一同事再开发一个新的功能,需要一周时间完成,他写了其中的30%还没有写完,如果他提 交了这个版本,那么团队中的其它人就不能继续开发…

记录:微星 GE63 屏轴断裂 之后。。。

2022/11/25 记录 微星 GE63 1070 笔记本,使用的第三年,已过保了一年,上周使用时,准备合上笔记本盖。啪一下,左侧屏轴断裂,B面翘起,A面左下角轴盖断了一截。 网上好多人都有类似的情况&#xff…

晶振在单片机中扮演着什么角色?晶振坏了单片机还能运行程序吗?

晶振坏了单片机还能运行程序吗?前言晶振是什么?单片机没有晶振可以运行程序吗?PCB中晶振电路的要求结语前言 今天突然想到一个问题,如果一个单片机的晶振坏了那单片机还能运行程序吗?带着这个问题我查询了很多的治疗发…

HTML5期末考核大作业 基于HTML+CSS+JavaScript沪上美食(9页)

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

我的DW个人网站设计——安徽宣城6页HTML+CSS+JavaScript

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有…

SpringBoot+Mybaits搭建通用管理系统实例十:基础增删改查功能实现下

一、本章内容 实现系统基础增删改查功能,使用抽象类实现基础增删改查功能,包括数据详情加载、列表加载、分页加载、数据删除、批量删除、数据保存、数据更新等功能。 完整课程地址 二、开发视频 SpringBoot+Mybaits搭建通用管理系统实例二:service层实现 三、代码实现 3.1 删…

Flutter高仿微信-第48篇-群聊-图片

Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图: 详情请参考Flutter高仿微信-第44篇-群聊, 这里只是群聊的图片实现代…

NeRF~

NeRF实在太重要了代表着计算机视觉、图像学结合的未来重要方向;NeRF对于计算机视觉背景的同学有一定的理解门槛,本次试图以最小背景知识补充、最少理解成本为前提介绍NeRF。 NeRF,即Neural Radiance Fields(神经辐射场&#xff0…

【语音识别】动态时间规整算法(RTW)语音识别系统【含GUI Matlab源码 341期】

⛄一、动态时间规整算法(RTW)语音识别 软件算法主要分为语音信号滤波去噪、预加重、分帧、端点检测、特征参数提取、模式匹配。算法的关键点和难点是特征参数提取和模式匹配。孤立词的语音识别应用程序也是基于MATLAB的GUI进行开发。 1 语音预处理 语音…

C++11标准模板(STL)- 算法(std::lower_bound)

定义于头文件 <algorithm> 算法库提供大量用途的函数&#xff08;例如查找、排序、计数、操作&#xff09;&#xff0c;它们在元素范围上操作。注意范围定义为 [first, last) &#xff0c;其中 last 指代要查询或修改的最后元素的后一个元素。 返回指向第一个不小于给定…

Hystrix原理

背景 分布式系统环境下&#xff0c;服务间类似依赖非常常见&#xff0c;一个业务调用通常依赖多个基础服务。如下图&#xff0c;对于同步调用&#xff0c;当库存服务不可用时&#xff0c;商品服务请求线程被阻塞&#xff0c;当有大批量请求调用库存服务时&#xff0c;最终可能…

jupyter中安装scala和spark内核详细教程

jupyter中安装scala和spark内核 jupyter中安装scala和spark内核 文章目录jupyter中安装scala和spark内核一、前期准备二、安装&#xff08;一&#xff09;Anaconda1、文件上传到Linux系统上方法一&#xff1a;方法二&#xff1a;使用wget2、安装Anaconda3、激活环境4、jupyter…

一文剖析Linux内核中内存管理

Linux中内存管理 内存管理的主要工作就是对物理内存进行组织&#xff0c;然后对物理内存的分配和回收。但是Linux引入了虚拟地址的概念。 文章推荐&#xff1a; 关于如何快速学好&#xff0c;学懂Linux内核。内含学习路线 需要多久才能看完linux内核源码&#xff1f; ​​…

windows位图绘制(显示位图资源)LoadBitmap、CreateCompatibleDC、BitBlt、StretchBlt

位图绘制 位图相关 光栅图形-记录图像中每一点的颜色等信息。 矢量图形-记录图像算法、绘图指令等。 HBITMAP-位图句柄 位图的适用 1.在资源中添加位图资源&#xff08;在vs中点鼠标增加&#xff09; 2.在资源中加载位图LoadBitmap 3.创建一个与当前DC相匹配的DC&#xff08;内…

Js逆向教程-13浏览器和JS的关系/伪造浏览器环境 )

作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; Js逆向教程-13浏览器和JS的关系/伪造浏览器环境 ) 一、浏览器必然包含几个部分&#xff1a; 显示区域、输入网址、刷新按钮DOMBOM运行…