第二章 学习python前必备的基础知识

大家在上一章中已经可以自己敲出一个猜数字小游戏了,先不要删掉它,以后我们慢慢来改进它。接下来呢,我们再继续学习一些必须要学的基础知识。

2.1 变量

说到变量,就是可以改变的量,它并不是一个值,但它却是内存中的一个地址。什么意思?通俗点讲,当你定义一个a = 3的时候,系统在内存中会给a一个地址,而这个a就是代表一个门牌号,然后小3住在里面,当年调用a的时候,就相当于你喊了一句:小3,出来玩儿了!当你改好了这个房子之后,门牌号a是不能改变的,但住在里面的小3是可以换人的,所以称之为变量,而不是恒量。

看下面的例子:

a = 4

b = 5

print(a)

print(b)

结果:

结果显而易见,a和b分别叫出了小4和小5.那怎么体现它是可以变得呢?看下面的例子:

a = 4

b = 5

print(a+b)

a = "Li"

b = 'Wang'

print(a)

print(b)

结果:

结果很明显吧,第一次给a和b分别赋值4和5,然后print了一个a+b,结果是9,也说明print内是可以写一个运算式的;第二次我们给a和b分别赋值了两个字符串,然后打印出来的就是这两个字符串,从而说明这是个变量而不是常量。你想问既然数字可以加,那字符串可以加吗?当然可以,不信你可以自己运行一下下面的代码:

a = "Li"

b = "Wang"

print(a + b)

运行一下,看一下是什么结果,是不是已经把两个字符串拼接起来了?再试试看下面的代码:

a = 1

b = 2

c = "Li"

d = "Wang"

print(a + b)

print(a + c)

print(c + d)

print("Li" + "Wang")

并从中理解一下,是不是数字和字符串可以任意的拼接和打印。

2.2 字符串

我们都知道像1,2,3这样的类型叫做int类型(整型),那像a,b,c这样的字母及一些特殊字符%,*,@呢,他们被统称为字符串类型,也就是str类型,那怎么才能在代码中知道我输入的或者赋值的这个变量是什么类型呢,python的BIF里给了我们一个type()方法来获得类型名,等等,BIF是什么,好高级的样子。

BIF 是Built-in Functions,也就是内置函数的意思,像Python里的很多内置函数都是可以直接调用的,方便了程序员快速编写脚本。比如print就是一个内置函数,用来打印。input()也是一个内置函数,用来提示用户输入。

好,继续来说type()这个BIF的作用,请看下面的代码:

a = 2

b = "Li"

print(type(a),type(b))

结果:

看到没有,第一个a的类型显示的为int,第二个b的类型显示为str字符类型

继续看下一个代码:

a = "Li"

print("大家好,我叫%s" % a)

b = 18

print("我今年%d岁了" % b,"(真年轻,啊哈哈)")

结果:

这里用了一个奇怪的字符,%s和%d是用来干嘛的,说明一下,s就是字符串,d则是整型,其他的像什么%f,%b什么的大家可以自己查资料,最常用的就是%s和%d,%f好像也挺常用的,它代表的浮点数,浮点数也就是小数。另外记住,在(“大家好,我叫%s” % a)中,第二个%前面和字符串之间是不能加逗号的,不然python会认为这是两个单独的字符串。

扩展一下,除了用%号来格式化还有其他的方法吗?有的,python还给了我们一个叫format的方法,代码如下:

a = "Li"

b = 18

print("大家好,我叫{name},今年{age}岁了".format(name=a, age=b))

结果:

结果如出一辙吧,另外其实还有一种更简洁的方式,如下:

name = "Li"

age = 18

print(f"大家好,我叫{name},今年{age}岁了")

结果和上面的是一样的,大家不妨试一下。

2.3 原始字符串

下面有一行代码,大家看看输出和想象中一样吗?

print("\time \home \name")

输出的是不是很奇怪,是不是第一个t没了,而变成了一个Tab,name的n也没了,变成了换行。没错,在python中,\t 为制表符,\n为换行符。是不是有点伤脑筋了,那这样我怎么才能输出我想要的结果呢。没关系,python肯定已经想到了这样的问题,所以我们可以在"“前面再加一个”"用来转义字符。

print("\\time \home \\name")

这样的输出就会变成我们需要的输出,那还有没有更简单的方式呢,每个"“前面都要加一个”",那岂不是很麻烦。答案是有的,这时就需要我们将要打印的字符转换成原始字符串,怎么转换呢,看代码:

print(r"\time \home \name")

有没有看到一个细微的变化,没错,我们在引号外加了一个"r",代表我们要将后边要打印的字符转换成原始字符串,这样就可以随心所欲的打印了。

2.4 长字符串

我说 你是人间的四月天;

笑响点亮了四面风;

轻灵在春的光艳中交舞着变。

你是四月早天里的云烟,

黄昏吹着风的软,

星子在无意中闪,

细雨点洒在花前。

那轻,那娉婷,你是,

鲜妍百花的冠冕你戴着,

你是天真,庄严,

你是夜夜的月圆。

雪化后那片鹅黄,你像;

新鲜初放芽的绿,你是;

柔嫩喜悦,

水光浮动着你梦期待中白莲。

你是一树一树的花开,

是燕在梁间呢喃,

——你是爱,是暖,是希望,

你是人间的四月天

哇,好有诗意,为啥要用这首当代诗开头呢,因为这整首诗就是我们的长字符串,我们要想把这首诗按照这个排版打印出来,按照我们学过的知识,是不是要这样打印:

print("我说 你是人间的四月天;\n 笑响点亮了四面风;\n 轻灵在春的光艳中交舞着变。\n 你是四月早天里的云烟,\n。。。")

是不是要在每个换行之前加一个换行符"\n",那这工程量可就大了去了,那有没有什么好方法呢,答案还是有的,我们可以这样:

a = """

我说 你是人间的四月天;

笑响点亮了四面风;

轻灵在春的光艳中交舞着变。

你是四月早天里的云烟,

黄昏吹着风的软,

星子在无意中闪,

细雨点洒在花前。

那轻,那娉婷,你是,

鲜妍百花的冠冕你戴着,

你是天真,庄严,

你是夜夜的月圆。

雪化后那片鹅黄,你像;

新鲜初放芽的绿,你是;

柔嫩喜悦,

水光浮动着你梦期待中白莲。

你是一树一树的花开,

是燕在梁间呢喃,

——你是爱,是暖,是希望,

你是人间的四月天

"""

print(a)

前后各三个单引号来表明这是一个长字符串,这样就会原封不动的打印出来了。

2.5 数字的运算

下面是常用的运算及关系字符:

+ :加法

- :减法

* :乘法

* * :幂运算

/ :除法

// :整除

% :余除

< :小于

> :大于

<= :小于等于

>= :大于等于

== :判断等于

!= :判断不等于

加法,减法和乘法应该不需要再说了,毕竟都是上过学的人。

大家先将下面的几行代码敲下来,注意从中观察"/", “//”, "%"都是除法,但是有什么不同。

print(3 ** 3)

print(9 / 2)

print(9 // 2)

print(9 % 2)

输出是不是这样的:

27

4.5

4

1

现在可以解释一下了,我们接触最多的就是这个"/“最普通的除法,这和我们平时的运算是最合乎常理的,9除以2本来就是4.5嘛,然而这个”//“呢,被称为取整,也就是我们只取除过后的整数部分,所以”%"这个取余就是取余数部分了,像是我们小时候学过的(9 除以 2 = 4 ······1)

然后大家再敲一下下面的代码:

print(3 > 5)

print(5 >= 5)

print(6 < 8)

print(4 == 4)

print(4 != 5)

结果

False

True

True

True

True

怎么我输入的是数字,但打印的是一串字符呢,因为号本来就是关系判断符,既然是判断,那就有对有错,False和True正好是英文中的对与错的意思,“==”就是判断两边数值是否相等,“!=”则判断两边数值是否不等,接下来就来了解一下python中的布尔类型。

2.6 布尔类型

其实在python中布尔类型中的False和True分别被当做0和1来对待的,即假和真。包括下面这样的计算也是可以的。

print(True + True)

print(False + True)

结果

2

1

有没有发现,在Python中True和False确实是被当成了1 和 0.

但如果你真想把这两个布尔类型放到数学计算中去用,那可真是不合逻辑了,为啥丢了西瓜捡芝麻。

2.7优先级问题

既然牵扯到了运算的问题,那肯定就会有优先级的问题,那么在python中,数值运算的优先级是怎样的呢?大家在上小学的时候都背过“先加减,后乘除”吧,没错,在Python中数值运算也是一样的,如果要先进行加减运算呢,那就用一个小括号把要先进行计算的括起来。

还有其实像下面的两个式子是一样的,不用担心

-5 * 7 + 7 * -9

(-5) * 7 + 7 * (-9)

2.8 逻辑操作符

python中的逻辑操作符有:

and

or

not

and也就是并且的意思,其要求两边的式子同时为真则为真。

or也就是或者的意思,要求两边一边为真则为真。

not也就是取反的意思,not真则为假,not假则为真。

看下面的代码

print( True and True)

print(True or False)

print(not True)

结果

True

True

False

很好理解吧。

其实在python中还会有这样的式子

2 < 3 <5

这其实是被解释成

2 < 3 and 3 < 5

这个做法在python中是被认可的,其他语言几乎都会报错,要记住。

2.9 数据类型及转换

我们已经学习了字符串类型和布尔类型,那我们知道数字的类型都有哪些吗,我们今天先来了解一下数字中的整型和浮点型

整型,见字如面,也就是意味着整型就是整数的类型,也就是int型,没什么可说的了

那么浮点型呢,其实也就是相当于小数类型,在这里顺便引进一个科学计数法,毕竟小数点后有很多数的例子见多了。

a = 0.0000000000009

b = 9e-9

print(type(a),type(b))

print(a == b)

结果:

True

看到没有,float也就是我们所说的浮点型,并且这里运用了一个用“e”表示的科学计数法,如果想要表示很大的数呢,那就把“e”后面的“-”号去掉。是不是方便了很多。

然后再看一下下面的例子了解一下类型转换

a = 4

b = 3.87

c = "Li"

d = "5"

print(type(a),str(a),type(str(a)))

print(type(b),int(b),type(int(b)))

print(type(d),int(d),type(int(d)))

结果:

4

3

5

从上面我们可以看出将一个浮点数转换成整数之后,它会自动把小数点后的数给去掉;我们也可以把一个数字转换成字符串,也可以把由数字组成的字符串转换成int型,但可以把由多个字符组成的字符串转换成int型吗,答案是不能,如果强制转换就会报错。

python编程知识大全_python编程入门之二:必备基础知识相关推荐

  1. python录音详解_Python实现电脑录音(含音频基础知识讲解)

    咪哥杂谈 本篇阅读时间约为 6 分钟. 1 前言 今天开始进入近期系列文章的第一篇,如何用 Python 来实现录音功能. 在开始"造轮子"之前,个人一直强调一个观点,如果有些东西 ...

  2. python爬虫知识大全_Python爬虫入门有哪些基础知识点

    1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...

  3. python编程图片大全_Python编程实现的图片识别功能示例

    本文实例讲述了Python编程实现的图片识别功能.分享给大家供大家参考,具体如下: 1. 安装PIL,官方没有WIN64位,Pillow替代 pip install Pillow-2.7.0-cp27 ...

  4. python爬虫教程大全_python爬虫入门教程

    爬虫是一个是一个好玩的技术,偷偷爬取mm的照片,爬取知乎用户头像等等,这些教程经验帖在网上随便一搜,到处都是:那么今天小编将给大家简单讲讲python爬虫的入门.鉴于经验排版模式有限,所以这里只能简单 ...

  5. python爬虫 ip代理_Python 爬虫入门(二)—— IP代理使用

    上一节,大概讲述了Python 爬虫的编写流程, 从这节开始主要解决如何突破在爬取的过程中限制.比如,IP.JS.验证码等.这节主要讲利用IP代理突破. 1.关于代理 简单的说,代理就是换个身份.网络 ...

  6. python 保留顺序去重_Python数据分析入门教程(二):数据预处理

    作者 | CDA数据分析师 从菜市场买来的菜,总有一些不太好的,所以把菜买回来以后要先做一遍预处理,把那些不太好的部分扔掉.现实中大部分的数据都类似于菜市场的菜品,拿到以后都要先做一次预处理. 常见的 ...

  7. 嵌入式系统开发入门一:必备基础知识

    版权声明:本文为博主原创文章,未经博主允许不得转载. 一个嵌入式系统(本文所说的嵌入式系统包括ARM,DSP,单片机等,不包括FPGA.CPLD等)的开发至少涉及到硬件和软件两个部分. 硬件之数字电路 ...

  8. python基础一入门必备知识-Python数据分析入门必备基础知识

    今天,老师要带大家解数据分析的定义.核心思路.应用领域以及开发流程,向大家全方位展示数据分析入门必备基础知识,全都是干货哦!虽然看完本文,不能让大家立马变身为一名数据分析师,但是能让大家对数据分析有一 ...

  9. python基础知识有哪些需要背(记住是基础知识)我是初学者

    大家好,小编来为大家解答以下问题,一个有趣的事情,一个有趣的事情,今天让我们一起来看看吧! 1.python基础知识有哪些需要背(记住是基础知识)我是初学者 或看好Python的广阔前景,或看中Pyt ...

  10. 大数据入门第一课 Hadoop基础知识与电商网站日志数据分析

    大数据入门第一课 Hadoop基础知识与电商网站日志数据分析 本课程从Hadoop核心技术入手,以电商项目为依托,带领你从0基础开始上手,逐步掌握大数据核心技术(如:HDFS.YARN.MapRedu ...

最新文章

  1. 2014-03-09 Spring的学习(1)------Spring管理Bean(实例化Bean)
  2. C语言中#if,#if defined ,#ifdef,extern的用法描述
  3. OpenCV-CL: OpenCL加速计算机视觉技术
  4. pytorch报错RuntimeError: error in LoadLibraryA
  5. python无法调用安装的包_如何使用python命令和安装包进行安装Django框架
  6. 天梯赛L2-010 排座位(并查集和\set)
  7. BZOJ1026[SCOI2009]windy数
  8. 使用zk可以实现Master选举,实现原理是什么?
  9. 高通driver模块编译方法
  10. TensorFlow错误ValueError: No gradients provided for any variable
  11. 自旋锁spin_lock
  12. python图像分割算法_SLIC算法分割超像素原理及Python实现
  13. 大数据平台搭建技术底座 掘金移动互联等行业
  14. 连载:中国最早的一代官派留学生--留美幼童 (结尾)
  15. [Jenkins]jenkins配置163邮箱做邮件发送
  16. RS232实现串口双向通讯
  17. 如何恢复计算机隐藏的文件夹,Win7文件夹隐藏了怎么恢复 如何快速恢复系统隐藏文件【图文】...
  18. Java用for循环打印99乘法表
  19. 计算机网络 研究生入学考试,中南大学研究生入学考试 《计算机网络》试题
  20. myplay.pif、winsys16.dll、scrsys16.dll和AlxRes.exe的分析与解决(ZT)

热门文章

  1. Tomcat任意文件读取 文件包含漏洞复现(CVE-2020-1938/CNVD-2020-10487)
  2. 数分下(第1讲):一阶微分方程的三类模型求解
  3. FBreader问题记录及多端同步心得开篇
  4. php扩展 zval_copy_ctor,Zend API:pval/zval 数据结构
  5. 华为路由器如何配置静态路由
  6. CSS CSS3 pdf 电子书大全 百度云
  7. 不讲废话,全程硬核,处理结构化数据的终极解决方案
  8. Jenkins:This is especially strange since your build otherwise succeeded.及不是内外部指令问题
  9. Java面试官最爱问的volatile关键字
  10. Hexo主题制作指南