你要偷偷的学Python,然后惊呆所有人(第一天)
off999 2024-09-29 16:15 18 浏览 0 评论
标题无意冒犯,就是觉得这个广告挺好玩的
好,切入正题
文章目录
- 前言
- 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,会差那点请人搭环境的钱吗?
如果大家在学习中遇到困难,想找一个python学习交流环境,可以加入我们的python裙,关注小编,并私信“01”即可进裙,领取python学习资料,会节约很多时间,减少很多遇到的难题。
本系列也会着重培养各位的自主动手能力,毕竟我不可能把所有知识点都给你讲到,所以自己解决需求的能力就尤为重要,所以我在文中埋得坑请不要把它们看成坑,那是我留给你们的锻炼机会,请各显神通,自行解决。
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 + 6j
complexvar = 3 - 2j
print(type(complexvar))
print(id(complexvar))
#表达方式二:
complex(实数,虚数)
res = complex(14,2)
print(res) => (14,2)
12345678910
容器数据类型
str 字符串型
'''用引号引起来的就是字符串,三种引号:单引号 双引号 三引号'''
转义字符:\ (1)把有意义的字符转变为无意义的字符
(2)把无意义的字符转变的有意义
\n 或者 \r\n : 代表"换行"意思
\t : 代表"一个缩进"意思
\r : 代表将\r后面得所有字符拉到该行首
12345678
至于其他转义字符,这里不多赘述
特征:可以获取,但不可以修改,有序排列
获取字符串中的数据:跟列表list 元组tuple的取值一模一样(正向下标,反向下标)
12
元字符串
‘’‘元字符串可以让转义字符失效’’’
字符串的格式化
“%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”,})
冒号左边是键,右边是值,键值对之间用逗号隔开
特征 : 可以获取,可以修改,无序排列
底层使用了哈希算法,储存的数据是散列,键值对储存的数据
获取字典当中的数据:可以获取,直接输入冒号左边的键即可取值的数据
修改字典当中的数据:可以修改,直接将要改的值替换掉 键 就可实现修改
一般在命名字典的键时,推荐使用字符串,按照变量命名的字符串.
12345
补充
获取数据类型的函数: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()函数强制转换。
123
虽然浮点形式的字符串,不能使用int()函数。但浮点数是可以被int()函数强制转换的(去尾法)
float()
首先float()函数的使用,也是将需要转换的数据放在括号里,像这样:float(数据)。
其次,float()函数也可以将整数和字符串转换为浮点类型。但同时,如果括号里面的数据是字符串类型,那这个数据一定得是数字形式。
12
那么,经过之前str()和int()操练,float()函数是不是好懂了一些?
总结一下
标准输入输出
好滴吧,可能有的人会犯嘀咕,为什么不讲输入输出。莫急嘛
print()函数
括号内是数字的情况
print(520)
括号内是单引号的情况。
print('一起玩吧')
括号内是双引号的情况。
print("一起玩吧")
括号内单双引号同时存在的情况。
print("Let's play")
当然,括号内也可以是三引号,参考上面单双同时出现的情况就知道了。
12345678910111213
之所以现在才说输入输出,是因为这里面实在可以包含太多东西了,不要被上面的这几个例子所迷惑,print可以打印各种数据类型,参考本文前面出现的print()以及后面将会出现的print()
input()函数
首先,让我们通过一段代码,来看一看input()函数是如何使用的:
input('请在以下四个选项【格兰芬多;斯莱特林;拉文克劳;赫奇帕奇】中,输入你想去的学院名字:')
1
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)
12
for letter in 'Python': # 第一个实例
print ('当前字母 :', letter)
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # 第二个实例
print ('当前水果 :', fruit)
print ("Good bye!")
12345678
可以看出,模板中的iterating_var 是不用提前赋值的。
range()函数
使用range(a,b) 函数,你可以生成了一个【取头不取尾】的整数序列。
例如:
for i in range(13,17):
print(i)
12
结果:13、14、15、16
、
range()函数还有一种用法,我们来直接体验一下:
for i in range(0,10,3):
print(i)
12
这是一种切片方式,第三个参数被称作“步长”,即间隔多少取一个数。
那么这个代码执行的结果就是: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, '是一个质数')
12345678
while循环
while循环和for循环差不多,不过这里的计数变量要初始化:
栗:
a = 0 #先定义变量a,并赋值
while a < 5: #设定一个放行条件:a要小于5,才能办事
a = a + 1 # 满足条件时,就办事:将a+1
print(a) # 继续办事:将a+1的结果打印出来
1234
很明显,while循环有2个要点:1.放行条件;2.办事流程。
和for循环一样,冒号和内部代码的缩进都是必不可少的。
其他
break
我们先来看看break语句。break的意思是“打破”,是用来结束循环的,一般写作if…break。它的写法长这样:
# break语句搭配for循环
for...in...:
...
if ...:
break
# break语句搭配while循环
while...(条件):
...
if ...:
break
1234567891011
在这里,if…break的意思是如果满足了某一个条件,就提前结束循环。记住,这个只能在循环内部使用。
continue
continue的意思是“继续”。这个子句也是在循环内部使用的。当某个条件被满足的时候,触发continue语句,将跳过之后的代码,直接回到循环的开始。
# continue语句搭配for循环
for...in...:
...
if ...:
continue
...
# continue语句搭配while循环
while...(条件):
...
if ...:
continue
...
12345678910111213
pass
pass语句就非常简单了,它的英文意思是“跳过”。
对比两种循环
for循环和while循环最大的区别在于【循环的工作量是否确定】,for循环就像空房间依次办理业务,直到把【所有工作做完】才下班。但while循环就像哨卡放行,【满足条件就一直工作】,直到不满足条件就关闭哨卡
练手小项目
接下来,我想先和你谈谈一个项目一般是怎么完成的。更具体的说,程序员是如何思考和解决问题的呢?
我认为其中一个很重要的能力是【问题拆解】。问题拆解,指的是在做一件事或面对一个问题的时候,将其拆解成多个步骤或多个层次,逐步执行和解决问题,直至达到最终效果。
写个什么小项目呢?
这样吧,猜数字游戏都玩过吧,就写一个猜数字游戏:
功能需求:
实现一个猜数字小游戏,随机生成一个0~100以内的数据,由玩家来猜,每次猜完之后计算机告诉玩家是猜大了还是猜小了,共5次机会,5次猜不出来宣布游戏失败。
很简单吧。
写好的也可以发在评论区哦
最后多说一句,想学习Python可联系阿喵,这里有我自己整理的整套python学习资料和路线,想要这些资料的都可以关注阿喵,并私信“01”领取。
相关推荐
- Python钩子函数实现事件驱动系统(created钩子函数)
-
钩子函数(HookFunction)是现代软件开发中一个重要的设计模式,它允许开发者在特定事件发生时自动执行预定义的代码。在Python生态系统中,钩子函数广泛应用于框架开发、插件系统、事件处理和中...
- Python函数(python函数题库及答案)
-
定义和基本内容def函数名(传入参数):函数体return返回值注意:参数、返回值如果不需要,可以省略。函数必须先定义后使用。参数之间使用逗号进行分割,传入的时候,按照顺序传入...
- Python技能:Pathlib面向对象操作路径,比os.path更现代!
-
在Python编程中,文件和目录的操作是日常中不可或缺的一部分。虽然,这么久以来,钢铁老豆也还是习惯性地使用os、shutil模块的函数式API,这两个模块虽然功能强大,但在某些情况下还是显得笨重,不...
- 使用Python实现智能物流系统优化与路径规划
-
阅读文章前辛苦您点下“关注”,方便讨论和分享,为了回馈您的支持,我将每日更新优质内容。在现代物流系统中,优化运输路径和提高配送效率是至关重要的。本文将介绍如何使用Python实现智能物流系统的优化与路...
- Python if 语句的系统化学习路径(python里的if语句案例)
-
以下是针对Pythonif语句的系统化学习路径,从零基础到灵活应用分为4个阶段,包含具体练习项目和避坑指南:一、基础认知阶段(1-2天)目标:理解条件判断的逻辑本质核心语法结构if条件:...
- [Python] FastAPI基础:Path路径参数用法解析与实例
-
查询query参数(上一篇)路径path参数(本篇)请求体body参数(下一篇)请求头header参数本篇项目目录结构:1.路径参数路径参数是URL地址的一部分,是必填的。路径参...
- Python小案例55- os模块执行文件路径
-
在Python中,我们可以使用os模块来执行文件路径操作。os模块提供了许多函数,用于处理文件和目录路径。获取当前工作目录(CurrentWorkingDirectory,CWD):使用os....
- python:os.path - 常用路径操作模块
-
应该是所有程序都需要用到的路径操作,不废话,直接开始以下是常用总结,当你想做路径相关时,首先应该想到的是这个模块,并知道这个模块有哪些主要功能,获取、分割、拼接、判断、获取文件属性。1、路径获取2、路...
- 原来如此:Python居然有6种模块路径搜索方式
-
点赞、收藏、加关注,下次找我不迷路当我们使用import语句导入模块时,Python是怎么找到这些模块的呢?今天我就带大家深入了解Python的6种模块路径搜索方式。一、Python模块...
- 每天10分钟,python进阶(25)(python进阶视频)
-
首先明确学习目标,今天的目标是继续python中实例开发项目--飞机大战今天任务进行面向对象版的飞机大战开发--游戏代码整编目标:完善整串代码,提供完整游戏代码历时25天,首先要看成品,坚持才有收获i...
- python 打地鼠小游戏(打地鼠python程序设计说明)
-
给大家分享一段AI自动生成的代码(在这个游戏中,玩家需要在有限时间内打中尽可能多的出现在地图上的地鼠),由于我现在用的这个电脑没有安装sublime或pycharm等工具,所以还没有测试,有兴趣的朋友...
- python线程之十:线程 threading 最终总结
-
小伙伴们,到今天threading模块彻底讲完。现在全面总结threading模块1、threading模块有自己的方法详细点击【threading模块的方法】threading模块:较低级...
- Python信号处理实战:使用signal模块响应系统事件
-
信号是操作系统用来通知进程发生了某个事件的一种异步通信方式。在Python中,标准库的signal模块提供了处理这些系统信号的机制。信号通常由外部事件触发,例如用户按下Ctrl+C、子进程终止或系统资...
- Python多线程:让程序 “多线作战” 的秘密武器
-
一、什么是多线程?在日常生活中,我们可以一边听音乐一边浏览新闻,这就是“多任务处理”。在Python编程里,多线程同样允许程序同时执行多个任务,从而提升程序的执行效率和响应速度。不过,Python...
- 用python写游戏之200行代码写个数字华容道
-
今天来分析一个益智游戏,数字华容道。当初对这个游戏颇有印象还是在最强大脑节目上面,何猷君以几十秒就完成了这个游戏。前几天写2048的时候,又想起了这个游戏,想着来研究一下。游戏玩法用尽量少的步数,尽量...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python自定义函数 (53)
- python进度条 (67)
- python吧 (67)
- python字典遍历 (54)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python串口编程 (60)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python字典增加键值对 (53)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python人脸识别 (54)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)