Python 프로그래밍의 기본 수학적 계산 방법
이 글은 주로 Python프로그래밍에서의 기본적인 수학 계산 사용법을 소개합니다. 나눗셈 연산 및 관련 파이션 모듈의 사용법을 중점적으로 설명합니다.
숫자
파이썬에서 로그의 규칙은 비교적 간단하며 초등학교 수학 수준에서 이해할 수 있습니다.
그럼 제로베이스 학습으로 초등학교 수학 문제부터 계산해 볼까요? 왜냐하면 이제부터는 수학의 기초 지식을 반드시 통과하게 될 것이기 때문입니다.
>>> 3 3 >>> 3333333333333333333333333333333333333333 3333333333333333333333333333333333333333L >>> 3.222222 3.222222
위의 내용은 대화형 모드의 모습입니다. , 그래서 숫자를 정수라고 부르는데, 이 이름은 초등학교 수학과 같습니다.
상대적으로 큰 숫자를 입력하면 두 번째 숫자, 즉 여러 개의 3으로 구성된 정수를 파이썬에서는 긴 정수(Long Integer)라고 합니다. 숫자가 길다는 것을 나타내기 위해 Python은 끝에 L을 표시합니다. 실제로 Python은 이제 입력된 큰 정수를 긴 정수로 자동 처리할 수 있습니다. 여기서는 구별할 필요가 없습니다.
세 번째는 수학에서 소수라고 합니다. 여기서도 그렇게 부를 수 있지만, 많은 프로그래밍 언어와 마찬가지로 "부동 소수점 수"라고 부르는 것이 일반적입니다. 이 이름의 유래에 대해서는 몇 가지 설명이 있습니다.
위의 예에서는 모두 부호가 없는(또는 음수가 아닌) 숫자라고 할 수 있습니다. . 음수를 표현하고 싶다면 수학의 표현방식을 따르세요. 그냥 앞에 마이너스 기호를 붙이시면 됩니다.
여기서 이야기하고 있는 것은 모두 십진수라는 점에 주목할 필요가 있습니다.
십진법 외에도 2진수, 8진수, 16진수 체계가 프로그래밍에 사용될 수 있습니다. 물론 60진수 체계는 덜 자주 사용됩니다(사실 시간 기록 방식이 전형적인 60진법입니다. 시스템) .
파이썬에서는 각 숫자가 객체입니다. 예를 들어 앞서 입력한 3은 객체입니다. 각 개체는 메모리에 고유한 주소, 즉 ID를 가지고 있습니다.
>>> id(3) 140574872 >>> id(3.222222) 140612356 >>> id(3.0) 140612356 >>>
내장된 함수 id()를 사용하여 메모리 주소, 즉 각 객체의 아이덴티티.
내장된 기능, 영어가 내장된 기능입니다. 독자는 이름만 보고도 대략 짐작할 수 있습니다. 네, Python에 정의되어 있는 내부 함수입니다.
위의 세 가지 다른 숫자는 세 가지 다른 메모리 주소를 가진 세 가지 다른 개체입니다. 특히 수학적으로 3과 3.0은 동일하지만 여기서는 서로 다른 개체입니다.
id()를 사용하여 얻은 메모리 주소는 읽기 전용이므로 수정할 수 없습니다.
"identity"를 이해한 후 "type"을 살펴보겠습니다. type()을 사용하기 위한 내장 함수도 있습니다.
>>> type(3) <type 'int'> >>> type(3.0) <type 'float'> >>> type(3.222222) <type 'float'>
내장된 함수를 이용하여 객체의 종류를 확인할 수 있습니다.
객체의 가치는 여기서는 객체 자체입니다.
대상을 이해하는 것은 어렵지 않은 것 같습니다. 자신감을 갖고 계속 진행하시기 바랍니다.
변수
프로그래밍 언어에서는 "변수"와 "숫자"(파이썬에서는 엄밀히 말하면 객체)라고 3, 4, 5만 쓰는 것만으로는 충분하지 않습니다. ) 해당 관계를 설정합니다. 예:
>>> x = 5 >>> x 5 >>> x = 6 >>> x 6
이 예에서는 x = 5가 변수(x)와 숫자(5) 사이에 설정됩니다. , 그런 다음 x와 6 사이의 대응 관계를 설정합니다. x가 처음에는 5이고 그 다음에는 6이라는 것을 알 수 있습니다.
Python에서는 다음 문장을 갖는 것이 매우 중요합니다. 객체에는 유형이 있고 변수에는 유형이 없습니다. 그것을 이해하는 방법?
우선 5와 6은 모두 정수입니다. Python은 "정수" 유형 데이터라는 이름을 지정합니다. 또는 데이터 유형 은 int로 표시되는 정수입니다.
우리가 Python으로 5와 6을 작성하면 컴퓨터 소녀는 자동으로 자신의 기억 어딘가에 이 두 객체를 생성합니다(객체의 정의는 나중에 논의할 예정이며 여기에서 먼저 사용할 수 있습니다). 의미는 점차 명확해질 것입니다) 두 개의 조각품을 만드는 것과 같습니다. 하나는 5 모양이고 다른 하나는 6 모양입니다. 이들은 두 개체이고 이 두 개체의 유형은 int입니다.
그 x 모직물? 마치 레이블과 같습니다. x = 5일 때 레이블 x는 5에 묶여 있습니다. 이 x를 통해 연속적으로 5를 볼 수 있으므로 대화형 모드에서는 >>> x가 출력하는 결과는 5입니다. 사람들에게는 x가 5인 것처럼 보이지만 사실 x라는 라벨은 5에 붙어 있습니다. 같은 방식으로 x=6일 때 라벨의 위치가 바뀌고 6에 붙는다.
所以,这个标签 x 没有类型之说,它不仅可以贴在整数类型的对象上,还能贴在其它类型的对象上,比如后面会介绍到的 str(字符串)类型的对象等等。
这是 Python 区别于一些语言非常重要的地方。
四则运算
按照下面要求,在交互模式中运行,看看得到的结果和用小学数学知识运算之后得到的结果是否一致
>>> 2+5 7 >>> 5-2 3 >>> 10/2 5 >>> 5*2 10 >>> 10/5+1 3 >>> 2*3-4 2
上面的运算中,分别涉及到了四个运算符号:加(+)、减(-)、乘(*)、除(/)
另外,我相信看官已经发现了一个重要的公理:
在计算机中,四则运算和小学数学中学习过的四则运算规则是一样的
要不说人是高等动物呢,自己发明的东西,一定要继承自己已经掌握的知识,别跟自己的历史过不去。伟大的科学家们,在当初设计计算机的时候就想到列位现在学习的需要了,一定不能让后世子孙再学新的运算规则,就用小学数学里面的好了。感谢那些科学家先驱者,泽被后世。
下面计算三个算术题,看看结果是什么
4 + 2 4.0 + 2 4.0 + 2.0
看官可能愤怒了,这么简单的题目,就不要劳驾计算机了,太浪费了。
别着急,还是要运算一下,然后看看结果,有没有不一样?要仔细观察哦。
>>> 4+2 6 >>> 4.0+2 6.0 >>> 4.0+2.0 6.0
不一样的地方是:第一个式子结果是 6,这是一个整数;后面两个是 6.0,这是浮点数。
定义 1:类似 4、-2、129486655、-988654、0 这样形式的数,称之为整数
定义 2:类似 4.0、-2.0、2344.123、3.1415926 这样形式的数,称之为浮点数
对这两个的定义,不用死记硬背,google 一下。记住爱因斯坦说的那句话:书上有的我都不记忆(是这么的说?好像是,大概意思,反正我也不记忆)。后半句他没说,我补充一下:忘了就 google。
似乎计算机做一些四则运算是不在话下的,但是,有一个问题请你务必注意:在数学中,整数是可以无限大的,但是在计算机中,整数不能无限大。为什么呢?(我推荐你去 google,其实计算机的基本知识中肯定学习过了。)因此,就会有某种情况出现,就是参与运算的数或者运算结果超过了计算机中最大的数了,这种问题称之为“整数溢出问题”。
整数溢出问题
这里有一篇专门讨论这个问题的文章,推荐阅读:整数溢出
对于其它语言,整数溢出是必须正视的,但是,在 Python 里面,看官就无忧愁了,原因就是 Python 为我们解决了这个问题,请阅读下面的拙文:大整数相乘
ok!看官可以在 IDE 中实验一下大整数相乘。
>>> 123456789870987654321122343445567678890098876*1233455667789990099876543332387665443345566 152278477193527562870044352587576277277562328362032444339019158937017801601677976183816L
看官是幸运的,Python 解忧愁,所以,选择学习 Python 就是珍惜光阴了。
上面计算结果的数字最后有一个 L,就表示这个数是一个长整数,不过,看官不用管这点,反正是 Python 为我们搞定了。
在结束本节之前,有两个符号需要看官牢记(不记住也没关系,可以随时 google,只不过记住后使用更方便)
整数,用 int 表示,来自单词:integer
浮点数,用 float 表示,就是单词:float
可以用一个命令:type(object)来检测一个数是什么类型。
>>> type(4) <type 'int'> #4 是 int,整数 >>> type(5.0) <type 'float'> #5.0 是 float,浮点数 type(988776544222112233445566778899887766554433221133344455566677788998776543222344556678) <type 'long'> # 是长整数,也是一个整数
除法
除法啰嗦,不仅是 Python。
整数除以整数
进入 Python 交互模式之后(以后在本教程中,可能不再重复这类的叙述,只要看到>>>,就说明是在交互模式下),练习下面的运算:
>>> 2 / 5 0 >>> 2.0 / 5 0.4 >>> 2 / 5.0 0.4 >>> 2.0 / 5.0 0.4
看到没有?麻烦出来了(这是在 Python2.x 中),按照数学运算,以上四个运算结果都应该是 0.4。但我们看到的后三个符合,第一个居然结果是 0。why?
因为,在 Python(严格说是 Python2.x 中,Python3 会有所变化)里面有一个规定,像 2/5 中的除法这样,是要取整(就是去掉小数,但不是四舍五入)。2 除以 5,商是 0(整数),余数是 2(整数)。那么如果用这种形式:2/5,计算结果就是商那个整数。或者可以理解为:整数除以整数,结果是整数(商)。
比如:
>>> 5 / 2 2 >>> 7 / 2 3 >>> 8 / 2 4
注意:得到是商(整数),而不是得到含有小数位的结果再通过“四舍五入”取整。例如:5/2,得到的是商 2,余数 1,最终5 / 2 = 2。并不是对 2.5 进行四舍五入。
浮点数与整数相除
这个标题和上面的标题格式不一样,上面的标题是“整数除以整数”,如果按照风格一贯制的要求,本节标题应该是“浮点数除以整数”,但没有,现在是“浮点数与整数相除”,其含义是:
假设:x 除以 y。其中 x 可能是整数,也可能是浮点数;y 可能是整数,也可能是浮点数。
出结论之前,还是先做实验:
>>> 9.0 / 2 4.5 >>> 9 / 2.0 4.5 >>> 9.0 / 2.0 4.5 >>> 8.0 / 2 4.0 >>> 8 / 2.0 4.0 >>> 8.0 / 2.0 4.0
归纳,得到规律:不管是被除数还是除数,只要有一个数是浮点数,结果就是浮点数。所以,如果相除的结果有余数,也不会像前面一样了,而是要返回一个浮点数,这就跟在数学上学习的结果一样了。
>>> 10.0 / 3 3.3333333333333335
这个是不是就有点搞怪了,按照数学知识,应该是 3.33333...,后面是 3 的循环了。那么你的计算机就停不下来了,满屏都是 3。为了避免这个,Python 武断终结了循环,但是,可悲的是没有按照“四舍五入”的原则终止。当然,还会有更奇葩的出现:
>>> 0.1 + 0.2 0.30000000000000004 >>> 0.1 + 0.1 - 0.2 0.0 >>> 0.1 + 0.1 + 0.1 - 0.3 5.551115123125783e-17 >>> 0.1 + 0.1 + 0.1 - 0.2 0.10000000000000003
越来越糊涂了,为什么 computer 姑娘在计算这么简单的问题上,如此糊涂了呢?不是 computer 姑娘糊涂,她依然冰雪聪明。原因在于十进制和二进制的转换上,computer 姑娘用的是二进制进行计算,上面的例子中,我们输入的是十进制,她就要把十进制的数转化为二进制,然后再计算。但是,在转化中,浮点数转化为二进制,就出问题了。
例如十进制的 0.1,转化为二进制是:0.0001100110011001100110011001100110011001100110011...
也就是说,转化为二进制后,不会精确等于十进制的 0.1。同时,计算机存储的位数是有限制的,所以,就出现上述现象了。
这种问题不仅仅是 Python 中有,所有支持浮点数运算的编程语言都会遇到,它不是 Python 的 bug。
明白了问题原因,怎么解决呢?就 Python 的浮点数运算而言,大多数机器上每次计算误差不超过 2**53 分之一。对于大多数任务这已经足够了,但是要在心中记住这不是十进制算法,每个浮点数计算可能会带来一个新的舍入错误。
一般情况下,只要简单地将最终显示的结果用“四舍五入”到所期望的十进制位数,就会得到期望的最终结果。
对于需要非常精确的情况,可以使用 decimal 模块,它实现的十进制运算适合会计方面的应用和高精度要求的应用。另外 fractions 模块支持另外一种形式的运算,它实现的运算基于有理数(因此像 1/3 这样的数字可以精确地表示)。最高要求则可是使用由 SciPy 提供的 Numerical Python 包和其它用于数学和统计学的包。列出这些东西,仅仅是让看官能明白,解决问题的方式很多,后面会用这些中的某些方式解决上述问题。
关于无限循环小数问题,我有一个链接推荐给诸位,它不是想象的那么简单呀。请阅读:维基百科的词条:0.999...,会不会有深入体会呢?
补充一个资料,供有兴趣的朋友阅读:浮点数算法:争议和限制
Python 总会要提供多种解决问题的方案的,这是她的风格。
引用模块解决除法--启用轮子
Python 之所以受人欢迎,一个很重重要的原因,就是轮子多。这是比喻啦。就好比你要跑的快,怎么办?光天天练习跑步是不行滴,要用轮子。找辆自行车,就快了很多。还嫌不够快,再换电瓶车,再换汽车,再换高铁...反正你可以选择的很多。但是,这些让你跑的快的东西,多数不是你自己造的,是别人造好了,你来用。甚至两条腿也是感谢父母恩赐。正是因为轮子多,可以选择的多,就可以以各种不同速度享受了。
轮子是人类伟大的发明。
Python 就是这样,有各种轮子,我们只需要用。只不过那些轮子在 Python 里面的名字不叫自行车、汽车,叫做“模块”,有人承接别的语言的名称,叫做“类库”、“类”。不管叫什么名字吧。就是别人造好的东西我们拿过来使用。
怎么用?可以通过两种形式用:
形式 1:import module-name。import 后面跟空格,然后是模块名称,例如:import os
形式 2:from module1 import module11。module1 是一个大模块,里面还有子模块 module11,只想用 module11,就这么写了。
不啰嗦了,实验一个:
>>> from future import pision >>> 5 / 2 2.5 >>> 9 / 2 4.5 >>> 9.0 / 2 4.5 >>> 9 / 2.0 4.5
注意了,引用了一个模块之后,再做除法,就不管什么情况,都是得到浮点数的结果了。
这就是轮子的力量。
余数
前面计算 5/2 的时候,商是 2,余数是 1
余数怎么得到?在 Python 中(其实大多数语言也都是),用%符号来取得两个数相除的余数.
实验下面的操作:
>>> 5 % 2 1 >>> 6%4 2 >>> 5.0%2 1.0
符号:%,就是要得到两个数(可以是整数,也可以是浮点数)相除的余数。
前面说 Python 有很多人见人爱的轮子(模块),她还有丰富的内建函数,也会帮我们做不少事情。例如函数 pmod()
>>> pmod(5,2) # 表示 5 除以 2,返回了商和余数 (2, 1) >>> pmod(9,2) (4, 1) >>> pmod(5.0,2) (2.0, 1.0)
四舍五入
最后一个了,一定要坚持,今天的确有点啰嗦了。要实现四舍五入,很简单,就是内建函数:round()
动手试试:
>>> round(1.234567,2) 1.23 >>> round(1.234567,3) 1.235 >>> round(10.0/3,4) 3.3333
위 내용은 Python 프로그래밍의 기본 수학적 계산 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











MySQL에는 무료 커뮤니티 버전과 유료 엔터프라이즈 버전이 있습니다. 커뮤니티 버전은 무료로 사용 및 수정할 수 있지만 지원은 제한되어 있으며 안정성이 낮은 응용 프로그램에 적합하며 기술 기능이 강합니다. Enterprise Edition은 안정적이고 신뢰할 수있는 고성능 데이터베이스가 필요하고 지원 비용을 기꺼이 지불하는 응용 프로그램에 대한 포괄적 인 상업적 지원을 제공합니다. 버전을 선택할 때 고려 된 요소에는 응용 프로그램 중요도, 예산 책정 및 기술 기술이 포함됩니다. 완벽한 옵션은없고 가장 적합한 옵션 만 있으므로 특정 상황에 따라 신중하게 선택해야합니다.

이 기사는 MySQL 데이터베이스의 작동을 소개합니다. 먼저 MySQLworkBench 또는 명령 줄 클라이언트와 같은 MySQL 클라이언트를 설치해야합니다. 1. MySQL-Uroot-P 명령을 사용하여 서버에 연결하고 루트 계정 암호로 로그인하십시오. 2. CreateABase를 사용하여 데이터베이스를 작성하고 데이터베이스를 선택하십시오. 3. CreateTable을 사용하여 테이블을 만들고 필드 및 데이터 유형을 정의하십시오. 4. InsertInto를 사용하여 데이터를 삽입하고 데이터를 쿼리하고 업데이트를 통해 데이터를 업데이트하고 DELETE를 통해 데이터를 삭제하십시오. 이러한 단계를 마스터하고 일반적인 문제를 처리하는 법을 배우고 데이터베이스 성능을 최적화하면 MySQL을 효율적으로 사용할 수 있습니다.

MySQL 설치 실패의 주된 이유는 다음과 같습니다. 1. 권한 문제, 관리자로 실행하거나 Sudo 명령을 사용해야합니다. 2. 종속성이 누락되었으며 관련 개발 패키지를 설치해야합니다. 3. 포트 충돌, 포트 3306을 차지하는 프로그램을 닫거나 구성 파일을 수정해야합니다. 4. 설치 패키지가 손상되어 무결성을 다운로드하여 확인해야합니다. 5. 환경 변수가 잘못 구성되었으며 운영 체제에 따라 환경 변수를 올바르게 구성해야합니다. 이러한 문제를 해결하고 각 단계를 신중하게 확인하여 MySQL을 성공적으로 설치하십시오.

MySQL 다운로드 파일은 손상되었습니다. 어떻게해야합니까? 아아, mySQL을 다운로드하면 파일 손상을 만날 수 있습니다. 요즘 정말 쉽지 않습니다! 이 기사는 모든 사람이 우회를 피할 수 있도록이 문제를 해결하는 방법에 대해 이야기합니다. 읽은 후 손상된 MySQL 설치 패키지를 복구 할 수있을뿐만 아니라 향후에 갇히지 않도록 다운로드 및 설치 프로세스에 대해 더 깊이 이해할 수 있습니다. 파일 다운로드가 손상된 이유에 대해 먼저 이야기합시다. 이에 대한 많은 이유가 있습니다. 네트워크 문제는 범인입니다. 네트워크의 다운로드 프로세스 및 불안정성의 중단으로 인해 파일 손상이 발생할 수 있습니다. 다운로드 소스 자체에도 문제가 있습니다. 서버 파일 자체가 고장 났으며 물론 다운로드하면 고장됩니다. 또한 일부 안티 바이러스 소프트웨어의 과도한 "열정적 인"스캔으로 인해 파일 손상이 발생할 수 있습니다. 진단 문제 : 파일이 실제로 손상되었는지 확인하십시오

MySQL은 기본 데이터 저장 및 관리를위한 네트워크 연결없이 실행할 수 있습니다. 그러나 다른 시스템과의 상호 작용, 원격 액세스 또는 복제 및 클러스터링과 같은 고급 기능을 사용하려면 네트워크 연결이 필요합니다. 또한 보안 측정 (예 : 방화벽), 성능 최적화 (올바른 네트워크 연결 선택) 및 데이터 백업은 인터넷에 연결하는 데 중요합니다.

MySQL 데이터베이스 성능 최적화 안내서 리소스 집약적 응용 프로그램에서 MySQL 데이터베이스는 중요한 역할을 수행하며 대규모 트랜잭션 관리를 담당합니다. 그러나 응용 프로그램 규모가 확장됨에 따라 데이터베이스 성능 병목 현상은 종종 제약이됩니다. 이 기사는 일련의 효과적인 MySQL 성능 최적화 전략을 탐색하여 응용 프로그램이 고 부하에서 효율적이고 반응이 유지되도록합니다. 실제 사례를 결합하여 인덱싱, 쿼리 최적화, 데이터베이스 설계 및 캐싱과 같은 심층적 인 주요 기술을 설명합니다. 1. 데이터베이스 아키텍처 설계 및 최적화 된 데이터베이스 아키텍처는 MySQL 성능 최적화의 초석입니다. 몇 가지 핵심 원칙은 다음과 같습니다. 올바른 데이터 유형을 선택하고 요구 사항을 충족하는 가장 작은 데이터 유형을 선택하면 저장 공간을 절약 할 수있을뿐만 아니라 데이터 처리 속도를 향상시킬 수 있습니다.

MySQL이 시작을 거부 했습니까? 당황하지 말고 확인합시다! 많은 친구들이 MySQL을 설치 한 후 서비스를 시작할 수 없다는 것을 알았으며 너무 불안했습니다! 걱정하지 마십시오.이 기사는 침착하게 다루고 그 뒤에있는 마스터 마인드를 찾을 수 있습니다! 그것을 읽은 후에는이 문제를 해결할뿐만 아니라 MySQL 서비스에 대한 이해와 문제 해결 문제에 대한 아이디어를 향상시키고보다 강력한 데이터베이스 관리자가 될 수 있습니다! MySQL 서비스는 시작되지 않았으며 간단한 구성 오류에서 복잡한 시스템 문제에 이르기까지 여러 가지 이유가 있습니다. 가장 일반적인 측면부터 시작하겠습니다. 기본 지식 : 서비스 시작 프로세스 MySQL 서비스 시작에 대한 간단한 설명. 간단히 말해서 운영 체제는 MySQL 관련 파일을로드 한 다음 MySQL 데몬을 시작합니다. 여기에는 구성이 포함됩니다

MySQL 성능 최적화는 설치 구성, 인덱싱 및 쿼리 최적화, 모니터링 및 튜닝의 세 가지 측면에서 시작해야합니다. 1. 설치 후 innodb_buffer_pool_size 매개 변수와 같은 서버 구성에 따라 my.cnf 파일을 조정해야합니다. 2. 과도한 인덱스를 피하기 위해 적절한 색인을 작성하고 Execution 명령을 사용하여 실행 계획을 분석하는 것과 같은 쿼리 문을 최적화합니다. 3. MySQL의 자체 모니터링 도구 (showprocesslist, showstatus)를 사용하여 데이터베이스 건강을 모니터링하고 정기적으로 백업 및 데이터베이스를 구성하십시오. 이러한 단계를 지속적으로 최적화함으로써 MySQL 데이터베이스의 성능을 향상시킬 수 있습니다.
