ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Python基础语法学习:从变量到运算符

Python基础语法学习:从变量到运算符 一、常量和表达式Python 可以直接当成一个计算器来使用。例如print(12-3)print(12*3)print(12/3)这里的1、2、3属于字面值常量。而-*/属于运算符。像12-3这种完整的算式在编程语言中称为表达式计算之后得到的结果可以理解为表达式的返回值。Python 中算术运算的优先级和数学中比较接近先算乘除再算加减也可以使用括号改变运算顺序。有一个和 C 特别容易搞混的地方print(2/3)Python 得到的是小数而不是像整数除法那样直接截掉小数部分。二、变量到底是什么刚开始写程序的时候很多计算都很简单直接一行算完就行。但是稍微复杂一点之后就会出现一个问题中间结果需要保存起来。这时候就需要变量。比如计算平均数avg(67.589.012.932.2)/4这里的avg就保存了平均值。接下来计算方差的时候就可以继续使用total(67.5-avg)**2\(89.0-avg)**2\(12.9-avg)**2\(32.2-avg)**2resulttotal/3print(result)变量可以先简单理解成一个保存数据的空间程序运行过程中可以不断读取和修改这些数据。三、Python变量的定义Python 创建变量特别简单a10这里的a是变量名是赋值运算符表示把右边的数据赋给左边的变量。变量名有一些必须遵守的规则只能由数字、字母、下划线组成 数字不能放在开头 不能使用关键字作为变量名 大小写敏感例如num10Num20这两个变量并不是一个东西。因为 Python 区分大小写num Num属于两个不同的变量。四、变量名最好别乱起虽然a10b20cab这样写完全可以运行但是程序一复杂就很难看懂。例如totalCount100personInfoTom看到变量名基本就能猜到它是干什么的。所以写代码时变量名最好带有一定的描述性。多个单词组成的变量名可以使用驼峰命名法比如totalCount personInfo这样以后自己回头看代码也不用重新猜变量的含义。五、Python最大的特点之一变量没有固定类型在 C 中我们通常需要先写inta10;Python 不需要这样写a10变量的类型会在赋值的时候确定。而且同一个变量后面还可以换成其他类型a10print(a)ahelloprint(a)刚开始a是整数后面又变成了字符串。这种特性叫做动态类型。相比之下C、Java 这样的语言一个变量定义之后其类型通常就是固定的因此属于静态类型语言。动态类型确实能让代码少写很多东西但程序变得很大之后也可能增加模块之间的理解和协作成本。六、Python中的几种基础类型目前主要接触下面几种int float str bool后面还会接触list、tuple、dict以及自定义类型。1. 整数 intPython 中的整数类型是int例如a10print(type(a))一个比较有意思的地方是Python 的int表示范围没有固定上限只要内存足够大理论上就可以表示非常大的整数。2. 浮点数 float小数使用float例如a0.5print(type(a))Python 这里和 C 又有一个明显区别。Python 中主要使用float表示浮点数没有单独的double类型这里的float实际上对应双精度浮点数。3. 字符串 str使用单引号或者双引号包起来的内容就是字符串ahellobhello这两种写法没有区别。还可以使用len(a)获取字符串长度。字符串之间可以使用进行拼接ahellobworldprint(ab)但是字符串不能直接和整数、浮点数进行这种加法。4. 布尔类型 bool布尔类型只有两个值TrueFalse后面进行条件判断和逻辑运算时会大量使用。注意这里的写法是TrueFalse首字母大写不是 C 中的truefalse七、为什么需要类型一开始可能会觉得“变量反正就是存数据的为什么还要区分类型”其实类型至少有两个重要作用。第一类型和数据在内存中的存储方式、空间有关。第二类型会影响这个数据可以进行什么操作。比如a10b20print(ab)整数可以进行 - * /等算术运算。但是字符串ahellobworld使用ab得到的是helloworld这里的已经不是数学意义上的加法而是字符串拼接。所以可以把类型理解成一种分类相同类型的数据通常有相似的使用方式和规则。八、注释注释不会影响程序执行主要作用是帮助自己和别人理解代码。例如计算方差的代码如果完全不写说明过一段时间再回来看的时候很容易忘记每个变量是在干什么。可以这样写# 计算 4 个数字的方差avg(67.589.012.932.2)/4我觉得注释有一个比较实际的作用不是只给别人看的也是给未来的自己看的。写代码的时候逻辑可能还记得很清楚但几个月以后再看很可能已经忘了。所以注释最好和代码保持一致不能代码改了注释还停留在以前。注释也不要写得过短或者太长核心就是把关键逻辑说明白。九、Python的输入和输出程序不能永远自己算自己的还需要和用户交互。用户把数据交给程序叫做输入程序把结果展示出来叫做输出。最基础的方式就是控制台输入输出。Python 中最常用的就是print()input()1. print输出最简单print(hello)也可以输出变量a10print(a)字符串和变量一起输出时可以使用f-stringnum10print(fnum {num})这里fnum {num}就是 f-string可以在{}里面直接放变量或者表达式。2. input输入使用input()从控制台读取输入。例如numinput(请输入一个整数: )print(f你输入的整数是{num})这里一定要记住input()返回的是字符串。哪怕你输入10得到的也是10而不是10所以如果想做真正的数字运算就需要进行类型转换。十、类型转换常见的类型转换函数有int()float()bool()str()例如ainput()binput()aint(a)bint(b)print(ab)如果没有转换ainput()binput()print(ab)那么这里实际上执行的是字符串拼接。比如输入10 20结果可能是1020而不是30这也是刚学 Python 时非常容易踩的坑。十一、算术运算符Python 常见的算术运算符有 加法 - 减法 * 乘法 / 除法 % 取余 ** 乘方 // 整除1./除法Python 中print(1/2)结果是0.5而不是0。另外除数不能为0否则程序运行过程中会出现异常。2.%取余%不是百分号而是求余数。例如print(7%2)结果1因为7 ÷ 2 3 余 13.**乘方例如print(4**2)结果16不仅可以计算整数次方也可以进行小数次方例如print(4**0.5)4.//整除//又叫地板除。例如print(7//2)结果3这里不是四舍五入而是向下取整。负数的时候尤其容易注意错print(-7//2)因为是向下取整所以不能简单理解成“直接把小数部分砍掉”。十二、关系运算符关系运算符主要负责比较两个数据 !结果只有TrueFalse例如a10b20print(ab)print(ab)print(a!b)比较成立返回True否则返回False。和千万别混这个和 C 一样也是非常基础但容易错的地方。a10表示赋值。而a10表示比较是否相等。这两个符号功能完全不同。十三、字符串也可以比较Python 中不仅数字可以使用关系运算符字符串也可以比较。例如ahellobworldprint(ab)print(ab)字符串比较采用的是字典序。可以把它理解成查英文词典先比较第一个字符如果第一个字符一样再比较第二个一直比较到出现不同的位置。哪个单词在字典中更靠前就认为哪个字符串更小。另外Python 中判断两个字符串内容是否相同直接使用或者!即可。十四、浮点数不要直接用判断比如print(0.10.20.3)很多人第一反应会觉得应该是True实际上可能得到False因为浮点数在计算机中并不能完全精确地表示计算过程中会出现很小的误差。0.1 0.2的结果可能会带有非常小的尾差。所以实际比较浮点数时一般不是直接判断ab而是判断abs(a-b)eps也就是允许存在一定范围的误差。十五、逻辑运算符Python 的逻辑运算符主要有and or not分别对应并且 或者 取反1. and两边都是真结果才是真。print(TrueandTrue)结果True只要有一边是假FalseandTrue结果就是False也就是一假则假。2. or只要有一边是真结果就是真。TrueorFalse结果True只有FalseorFalse才是False。也就是一真则真。3. notnot就是逻辑取反notTrue得到False而notFalse得到True十六、Python比较特别的一个写法Python 支持连续比较abandbc可以直接写成abc这点和很多其他编程语言不一样。所以以后看到1x10不要觉得奇怪它就是在判断1 x 并且 x 10十七、短路求值逻辑运算里面还有一个非常重要的概念短路求值。对于and如果左边已经是False那么整个表达式一定是False右边就没有必要继续执行。例如print(1020and10/01)左边1020本身就是False。所以右边10/0根本不会执行也就不会因为除零而抛出异常。对于or则正好相反如果左边已经是True那么整个表达式一定是True右边也就不需要继续执行。这个特性以后写条件判断的时候还是挺有用的。十八、赋值运算符最基础的赋值a10除了普通赋值Python 还支持链式赋值ab10也支持多元赋值a,b10,20这种写法还特别适合交换两个变量a,bb,a不用像 C 一样专门定义一个临时变量。十九、复合赋值运算符Python 支持 - * / %例如a10a1等价于aa1同理a-1就是aa-1二十、Python没有和--这个地方对于 C 程序员来说特别容易下意识写错。C 中i;i--;Python 不支持这种写法。需要改成i1i-1Python 在语法设计上直接没有加入和--这种写法也避免了前置和后置自增之间的一些区别。
返回列表