标题无意冒犯,就是觉得这个广告挺好玩的
上面这张思维导图喜欢就拿走,反正我也学不了这么多

好,切入正题


文章目录

  • 前言
  • Python语言概览
    • Python语言的起源
  • 数据类型
    • Number数据类型
    • 容器数据类型
    • str 字符串型
      • 元字符串
      • 字符串的格式化
    • list 列表型([])
      • 列表的修改
    • tuple 元组型 ( () )
    • set 集合型 ({})
    • dict 字典 ( {"aaa":"bbb",})
    • 补充
  • 四则运算
  • 字符串拼接
  • 强制类型转换
    • str()
    • int()
    • float()
    • 总结一下
  • 标准输入输出
    • print()函数
    • input()函数
      • 注意点
  • 控制语句
    • 条件控制语句
      • if判断
      • if···else···
      • if···elif···else
      • if嵌套
    • for···in···循环
      • range()函数
      • 循环使用 else 语句
    • while循环
    • 其他
      • break
      • continue
      • pass
    • 对比两种循环
  • 练手小项目
  • 长尾流量优化

前言

本系列文默认各位有一定的C或C++基础,因为我是学了点C++的皮毛之后入手的Python,这里也要感谢齐锋学长送来的支持。
本系列文默认各位会百度,会用在线编译器,因为我是突击学Python的,之前的编译环境都删了,但是吧,我发现在线编译是真的爽,浪费那时间去搭那环境干啥,学好了Python,会差那点请人搭环境的钱吗?

我要的不多,点个关注就好啦
然后呢,本系列的目录嘛,说实话我个人比较倾向于那两本 Primer Plus,所以就跟着它们的目录结构吧。

本系列也会着重培养各位的自主动手能力,毕竟我不可能把所有知识点都给你讲到,所以自己解决需求的能力就尤为重要,所以我在文中埋得坑请不要把它们看成坑,那是我留给你们的锻炼机会,请各显神通,自行解决。


Python语言概览

Python语言的起源

老生常谈了,但是追本溯源有时候会有它意想不到的好处,全在个人悟性了。

Python的作者,Guido von Rossum,确实是荷兰人。1982年,Guido从阿姆斯特丹大学(University of Amsterdam)获得了数学和计算机硕士学位。然而,尽管他算得上是一位数学家,但他更加享受计算机带来的乐趣。用他的话说,尽管拥有数学和计算机双料资质,他总趋向于做计算机相关的工作,并热衷于做任何和编程相关的活儿。

在那个时候,他接触并使用过诸如Pascal、C、 Fortran等语言。这些语言的基本设计原则是让机器能更快运行。所有的编译器的核心是做优化,以便让程序能够运行。为了增进效率,语言也迫使程序员像计算机一样思考,以便能写出更符合机器口味的程序。在那个时代,程序员恨不得用手榨取计算机每一寸的能力。

然而,这种思考方式让Guido感到苦恼。Guido知道如何用C语言写出一个功能,但整个编写过程需要耗费大量的时间 。他的另一个选择是shell。然而,shell的本质是调用命令。它并不是一个真正的语言。比如说,shell没有数值型的数据类型,加法运算都很复杂。总之,shell不能全面的调动计算机的功能。

Guido希望有一种语言,这种语言能够像C语言那样,能够全面调用计算机的功能接口,又可以像shell那样,可以轻松的编程。
1989年,为了打发圣诞节假期,Guido开始写Python语言的编译/解释器。Python来自Guido所挚爱的电视剧Monty Python’s Flying Circus 。他希望这个新的叫做Python的语言,能实现他的理念(一种C和shell之间,功能全面,易学易用,可拓展的语言)。Guido作为一个语言设计爱好者,已经有过设计语言的(不很成功)的尝试。这一次,也不过是一次纯粹的hacking行为。

1991年,第一个Python编译器(同时也是解释器)诞生。它是用C语言实现的,并能够调用C库(.so文件)。从一出生,Python已经具有了:类(class),函数(function),异常处理(exception),包括表(list)和词典(dictionary)在内的核心数据类型,以及模块(module)为基础的拓展系统。


数据类型

Number数据类型

int 整型 (正整形 0 负整型)

float 浮点型即小数

bool 布尔型 (True 真 False假)

插一个
complex 复数类型(这个我写代码两年多,也是没用过了)

#表达方式一:complexvar = 5 + 6jcomplexvar = 3 - 2jprint(type(complexvar))print(id(complexvar))#表达方式二:  complex(实数,虚数)res = complex(14,2)print(res)   => (14,2)

容器数据类型

str 字符串型

'''用引号引起来的就是字符串,三种引号:单引号  双引号  三引号'''转义字符:\  (1)把有意义的字符转变为无意义的字符(2)把无意义的字符转变的有意义\n  或者 \r\n :   代表"换行"意思\t          :   代表"一个缩进"意思\r          :   代表将\r后面得所有字符拉到该行首

至于其他转义字符,这里不多赘述

特征:可以获取,但不可以修改,有序排列
获取字符串中的数据:跟列表list 元组tuple的取值一模一样(正向下标,反向下标)

元字符串

‘’‘元字符串可以让转义字符失效’’’

字符串的格式化

“%d %f %s”  语法 : “字符串” % (实际值)
%d 占位符 d代表整型数据,%nd表示占n个位置

结果:XXX买了3个充气娃娃

%f 占位符 f代表浮点型数据 默认保留6位小数点,f前面有数值,则根据数值是多少保留对应小数点

结果:今天大白菜2.35元一斤


结果:今天大白菜2.3元一斤

%s 占位符 代表字符串

list 列表型([])

‘’‘特征:可以获取和修改数据,排列有序’’’

列表的修改

tuple 元组型 ( () )

‘’‘特征:可以获取但不能修改数据,排列有序’’’


获取元组中的数据 : 跟列表list的取值一模一样 (正向下标,反向下标)

set 集合型 ({})

setvar = {}     数据类型显示是一个dict 字典

特征:不可获取,也不可以修改,无序排列,自动去掉重复数据

dict 字典 ( {“aaa”:“bbb”,})

冒号左边是键,右边是值,键值对之间用逗号隔开

 特征 : 可以获取,可以修改,无序排列底层使用了哈希算法,储存的数据是散列,键值对储存的数据获取字典当中的数据:可以获取,直接输入冒号左边的键即可取值的数据修改字典当中的数据:可以修改,直接将要改的值替换掉 键 就可实现修改一般在命名字典的键时,推荐使用字符串,按照变量命名的字符串.

补充

获取数据类型的函数:type()
获取变量地址的函数:id()


四则运算

不过,对于这么多的算术运算符,我建议你先看一遍,有个大致的印象就行。你可以先把这张图保存上,等用的时候再找出来,对应着查阅就可以。

咱们再说说一样的——运算优先级:Python世界的运算优先级,和我们平时的计算优先级是一样的。


字符串拼接

Python有一个很优秀的点我很喜欢,那就是它的字符串拼接。
曾经有人说,编程,说到底就是对字符串的操作,我觉得他说的很有道理,别看那些花里胡哨的,说到底都是操作字符串。

反正C/C++里的字符串操作已经让我喝好几壶了,还没喝够。

Python里面字符串拼接的方法可简单了,就是利用字符串拼接符号【+】,将需要拼接的变量连在一起就行了。

但是,既然是字符串拼接,那它的限制其实就很明显了,你得拿字符串来拼接。

那如果我要拿去拼的东西参差不齐呢?怎么办?别急


强制类型转换

负责转换数据类型的函数一共有3种:str()、 int()和float()。

str()

str()函数能将数据转换成其字符串类型,不管这个数据是int类型还是float类型,只要放到括号里。这个数据就能摇身一变,成为字符串类型。
是不是挺简单的?我们只需通过str(number)一个步骤,便可以将整数类型的【153】转化为字符串类型的【153】,成功完成数据拼接。

int()

将数据转换为整数类型的方法也很简单,就是int()函数。其使用方法同str()一样,将你需要转换的内容放在括号里就行,像这样:int(转换的内容)。
不过对于int()函数的使用,大家要注意一点:只有符合整数规范的字符串类数据,才能被int()强制转换。
别看它虽然只有一句话,但它其实带有三层含义:

首先,整数形式的字符串比如'6'和'1',可以被int()函数强制转换。
其次,文字形式,比如中文、火星文或者标点符号,不可以被int()函数强制转换。
最后,小数形式的字符串,由于Python的语法规则,也不能使用int()函数强制转换。

虽然浮点形式的字符串,不能使用int()函数。但浮点数是可以被int()函数强制转换的(去尾法)

float()

首先float()函数的使用,也是将需要转换的数据放在括号里,像这样:float(数据)。
其次,float()函数也可以将整数和字符串转换为浮点类型。但同时,如果括号里面的数据是字符串类型,那这个数据一定得是数字形式。

那么,经过之前str()和int()操练,float()函数是不是好懂了一些?

总结一下


标准输入输出

好滴吧,可能有的人会犯嘀咕,为什么不讲输入输出。莫急嘛

print()函数

括号内是数字的情况
print(520)括号内是单引号的情况。
print('一起玩吧')括号内是双引号的情况。
print("一起玩吧")括号内单双引号同时存在的情况。
print("Let's play")当然,括号内也可以是三引号,参考上面单双同时出现的情况就知道了。

之所以现在才说输入输出,是因为这里面实在可以包含太多东西了,不要被上面的这几个例子所迷惑,print可以打印各种数据类型,参考本文前面出现的print()以及后面将会出现的print()

input()函数

首先,让我们通过一段代码,来看一看input()函数是如何使用的:

input('请在以下四个选项【格兰芬多;斯莱特林;拉文克劳;赫奇帕奇】中,输入你想去的学院名字:')

input()函数是输入函数。就上面例子来讲,它需要你输入针对括号内’请在以下四个选项【格兰芬多;斯莱特林;拉文克劳;赫奇帕奇】中,输入你想去的学院名字:'的答案。
所以,当你在函数的括号内写出问题时,input()函数会将此问题原样显示在屏幕上,并在终端区域等待你针对此问题的回答。

可是,我们为什么要在终端处输入回答呢?不输入行不行?
事实上,我们可以把input()函数当作一扇链接现实世界与代码世界的门。
当问题从代码世界传递给我们,可我们却没有回答时,这扇等待输入的input()大门,就会一直处于敞开状态,一直等着你往里送回答。

注意点

对于input()函数来说,不管我们输入的回答是什么,不管你输入的是整数1234,还是字符串『隐形斗篷是我最想拥有的魔法』,input()函数的输入值(搜集到的回答),永远会被【强制性】地转换为【字符串】类型。

这时候就要对输入的数据进行强制类型转换了:choice = int(input('请输入您的选择:'))


控制语句

条件控制语句

if判断

在这里,你可能注意到了一个细节:在条件判断代码中的冒号:后、下一行内容的前面,会空几个格,但这是为什么呢?
首先,在计算机的沟通语言中,空格的学名叫缩进,比如我们写文章都要空两个格,这就叫首行缩进。
icon

对于Python而言,冒号和缩进是一种语法。它会帮助Python区分代码之间的层次,理解条件执行的逻辑及先后顺序。【注:缩进是四个空格】这里建议不要用tab,就四个空格的事情嘛,年轻人那么懒干嘛,养成习惯之后很多地方受限制。

if···else···

很多时候,我们不能把鸡蛋放在一个篮子里,要做好两手准备:如果不满足条件时,我们要怎么办。
Python则很贴心地,让我们借用if…else…语句,让码农们有了另一种选择——【如果…不满足,就…】

在if…else条件语句中,if和else各自抱团,形成两个不同的代码块。表示的是条件和其他条件的互斥关系——如果不满足if条件,就执行else其他条件。

if···elif···else

在判断3个或3个以上的条件时,我们就需要借助Python中的多向判断命令:if…elif…else…。

当判断的条件超过3个时,中间的多个条件都可以使用elif。

elif后可不接else

if嵌套

像这种如果底下还有如果(即条件里还套条件)的情况,我们如何用Python把上面的规则写出来,并得出评价呢?

答案就是——嵌套条件。


for···in···循环

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

for循环的语法格式如下:

for iterating_var in sequence:statements(s)

for letter in 'Python':     # 第一个实例print ('当前字母 :', letter)fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        # 第二个实例print ('当前水果 :', fruit)print ("Good bye!")

可以看出,模板中的iterating_var 是不用提前赋值的。

range()函数

使用range(a,b) 函数,你可以生成了一个【取头不取尾】的整数序列。
例如:

for i in range(13,17):print(i)

结果:13、14、15、16


range()函数还有一种用法,我们来直接体验一下:

for i in range(0,10,3):print(i)

这是一种切片方式,第三个参数被称作“步长”,即间隔多少取一个数。
那么这个代码执行的结果就是:0、3、6、9

循环使用 else 语句

在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

for num in range(10,20):  # 迭代 10 到 20 之间的数字for i in range(2,num): # 根据因子迭代if num%i == 0:      # 确定第一个因子j=num/i          # 计算第二个因子print ('%d 等于 %d * %d' % (num,i,j))break            # 跳出当前循环else:                  # 循环的 else 部分print (num, '是一个质数')

while循环

while循环和for循环差不多,不过这里的计数变量要初始化:
栗:

a = 0                #先定义变量a,并赋值
while a < 5:         #设定一个放行条件:a要小于5,才能办事a = a + 1  # 满足条件时,就办事:将a+1print(a)   # 继续办事:将a+1的结果打印出来

很明显,while循环有2个要点:1.放行条件;2.办事流程。

和for循环一样,冒号和内部代码的缩进都是必不可少的。

其他

break

我们先来看看break语句。break的意思是“打破”,是用来结束循环的,一般写作if…break。它的写法长这样:

# break语句搭配for循环
for...in...:...if ...:break# break语句搭配while循环
while...(条件):...if ...:break

在这里,if…break的意思是如果满足了某一个条件,就提前结束循环。记住,这个只能在循环内部使用。

continue

continue的意思是“继续”。这个子句也是在循环内部使用的。当某个条件被满足的时候,触发continue语句,将跳过之后的代码,直接回到循环的开始。

# continue语句搭配for循环
for...in...:...if ...:continue...# continue语句搭配while循环
while...(条件):...if ...:continue...

pass

pass语句就非常简单了,它的英文意思是“跳过”。

对比两种循环

for循环和while循环最大的区别在于【循环的工作量是否确定】,for循环就像空房间依次办理业务,直到把【所有工作做完】才下班。但while循环就像哨卡放行,【满足条件就一直工作】,直到不满足条件就关闭哨卡


练手小项目

接下来,我想先和你谈谈一个项目一般是怎么完成的。更具体的说,程序员是如何思考和解决问题的呢?

我认为其中一个很重要的能力是【问题拆解】。问题拆解,指的是在做一件事或面对一个问题的时候,将其拆解成多个步骤或多个层次,逐步执行和解决问题,直至达到最终效果。

写个什么小项目呢?

这样吧,猜数字游戏都玩过吧,就写一个猜数字游戏:

功能需求:
实现一个猜数字小游戏,随机生成一个0~100以内的数据,由玩家来猜,每次猜完之后计算机告诉玩家是猜大了还是猜小了,共5次机会,5次猜不出来宣布游戏失败。

很简单吧。

写好的也可以发在评论区哦


长尾流量优化

建议收藏,不然划着划着就找不到了嘞。

我建了一个Python学习答疑群,有兴趣的朋友可以了解一下:这是个什么群

直通群的传送门:传送门

我要偷偷的学Python,然后惊呆所有人(第一天)相关推荐

  1. 学python的亲身经历_你要偷偷的学Python,然后惊呆所有人

    文章目录前言 欢迎来到我们的圈子 初见爬虫 为什么是爬虫 通用爬虫架构 爬虫的工作步骤 优秀爬虫的特性 1.高性能 2.可扩展性 3.健壮性 4.友好性 爬虫初体验 requests.get() Re ...

  2. 我最近学python_我要偷偷的学Python,然后惊呆所有人(第十六天)

    标题无意冒犯,就是觉得这个广告挺好玩的 上面这张思维导图喜欢就拿走,反正我也学不了这么多 前言 第十五天讲了Xpath,是真的好用啊. 于是我就去亲自练习了一下,抓取"2021腾讯校招网&q ...

  3. Python EFZ文件 气象_你要偷偷的学Python,然后惊呆所有人(第四天) - python阿喵

    标题无意冒犯,就是觉得这个广告挺好玩的 文章目录 前言什么是模块?跟我一起动手导入自己的模块第一步:新建一个模块第二步:调用模块调用模块不同方法.`if __name__ == '__main__'` ...

  4. python 10个100以内随机整数编辑_你要偷偷的学Python,然后惊呆所有人(第五天) - python阿喵

    标题无意冒犯,就是觉得这个广告挺好玩的 前言 前期回顾:你要偷偷学Python,然后惊呆所有人(第四天) 在第四天的时候,我们接触了Python的模块调用,这也是Python能够火起来的一大优势.我们 ...

  5. 我要偷偷的学Python,然后惊呆所有人(第二天)

    标题无意冒犯,就是觉得这个广告挺好玩的 上面这张思维导图喜欢就拿走,反正我也学不了这么多 文章目录 前言 编程学习的瓶颈 函数其实没那么可怕 初始函数 定义一个函数 函数规则 示例2: 示例3: 示例 ...

  6. 好想学python公众号怎么猜人_你要偷偷的学Python,然后惊呆所有人(第六天)

    标题无意冒犯,就是觉得这个广告挺好玩的 文章目录 前言 邮件群发 代码参考 伪代码1:发送一个空壳邮件 伪代码2:构建邮件内容 群发邮件 提高代码可复用性与可用性 告白气球 我画了个圈,欢迎大家来我们 ...

  7. python 去掉双引号_你要偷偷的学Python,然后惊呆所有人(第一天) - python阿喵

    标题无意冒犯,就是觉得这个广告挺好玩的 好,切入正题 文章目录 前言 Python语言概览 Python语言的起源 数据类型 Number数据类型 容器数据类型 str 字符串型 元字符串 字符串的格 ...

  8. python 去掉双引号_你要偷偷的学Python,然后惊呆所有人(第一天)

    标题无意冒犯,就是觉得这个广告挺好玩的 好,切入正题 文章目录 前言 Python语言概览 Python语言的起源 数据类型 Number数据类型 容器数据类型 str 字符串型 元字符串 字符串的格 ...

  9. 开课吧python好吗-开课吧9.9元学Python课程适合哪些人?开课吧靠谱吗?

    哪些人适合学Python? 上班族:可以用Python,提高效率.早下班 学生党:可以用Python,积攒经验.赚外快 毕业生:可以用Python,爬资料写论文.找工作 互联网人:可以用Python, ...

  10. 开课吧学python靠谱吗-开课吧9.9元学Python课程适合哪些人?开课吧靠谱吗?

    哪些人适合学Python? 上班族:可以用Python,提高效率.早下班 学生党:可以用Python,积攒经验.赚外快 毕业生:可以用Python,爬资料写论文.找工作 互联网人:可以用Python, ...

最新文章

  1. 性能超越图神经网络,将标签传递和简单模型结合实现SOTA
  2. 基于三维卷积神经网络的RGB-D显著目标检测
  3. 底盘编码数据解算ROS的odom数据
  4. tomcat 部署 RESTful 服务实例
  5. PaddleHub人像分割模型:AI人像抠图及图像合成
  6. java高并发(八)不可变对象
  7. OMS开发随笔之开发和部署要点
  8. 提供《疯狂的程序员》下载地址
  9. 快速用 Haskell 构建超级简单的 Web 技术栈!
  10. 【Oracle】使用logmnr工具挖掘日志
  11. Hadoop核心之HDFS 架构设计
  12. php 字符串压缩,PHP 压缩字符串的几种方法
  13. 学习MAXScript
  14. nodejs高速公路收费管理系统vue
  15. 【云原生】Hadoop HA on k8s 环境部署
  16. Ubuntu安装sogo输入法
  17. CGI跟FASTCGI区别
  18. 大数据是什么?一篇文章正确告诉你
  19. 小白装机工具提示在引导修复时检测到错误解决方法
  20. 奋斗吧,程序员——第四十五章 柔情似水,佳期如梦

热门文章

  1. Socket聊天室(基于C语言)
  2. 登录英雄联盟lol后无法显示界面出不来问题解决
  3. chrome为默认浏览器时,解决ftp无法用windows资源管理器打开,而是跳转到chrome打开
  4. 猫和路由器和交换机的区别
  5. GTX高速收发器Transceiver概述与收发共同特征(UG476)
  6. host文件的用途和用法
  7. python一只青蛙一次可以_Python算法题(一)——青蛙跳台阶
  8. 为什么很多人选择bgp机房托管
  9. 通过笔记本wifi共享到以太网接口方法--使用嵌入式设备接入互联网
  10. android应用推荐