python从入门到提高,这一篇就够了

Posted 有理想、有本领、有担当的有志青年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python从入门到提高,这一篇就够了相关的知识,希望对你有一定的参考价值。

文章目录


原创作者:有理想、有本领、有担当的有志青年
博客地址:https://blog.csdn.net/ngtnmd?spm=1000.2115.3001.5343

前言

本文旨在带大家开开心心地进入Python的世界。与其他教学文章不同,笔者更偏向于简单通俗地解读程序语言,即使你是从未接触编程世界的小白,也能够很容易地理解这门神奇的语言。希望大家学得开心,也感谢各位前辈指教!

配置环境

系统:Window10 (其他我不会,长大后再学)
编译器:Pycharm
Python版本:3.9

这位老哥写的很详细,可以点击这里看一下

创建 Python 文件

  • 任意文件夹里创建一个文本文件,将其后缀名改为.py,拖入 Pycharm即可
  • 也可以在Pycharm中项目中点击右键并直接创建Python文件

Hello world

写下你的第一个Python程序

print('hello world')
# 输出结果:hello world

快速运行:shift+F10

伴我们一生的变量

变量到底是什么

一般来讲,变量是计算机中的内存空间及里面的值

通俗地讲,小区有很多栋楼(内存空间),小明( Hello World!)住进了 1单元101(变量名),此后,物业(计算机)便以 1单元101户主 来称呼小明了

message = 'Hello World!'
print(message)
# 运行结果:Hello World!
''' 
	message是计算机中一块内存空间的名字,
	我们将文本 “Hello World!” 存进去,作为变量message的值
	即 message 代表了 Hello World!
'''   

变量的名字有讲究

  • 只能包含字母,数字和下划线(特殊符号或者空格都白搭,给你报错)
  • 不能以数字开头
  • 不能用 Python 里有特殊含义的单词(如:print )和函数名(下面会讲到函数)
  • 最好让人一看就知道是什么 比如存学生名字用 student_name

敲一敲

  1. 将“人生苦短,我用Python”存储到变量中,再将其打印出来
  2. 再将变量修改为“我爱Python”,并将其打印出来

简单数据类型

大多数程序都定义并收集某种数据,然后使用它们做些有意义的事情。
数据可以是数字,字符,或是一串字符等等,鉴于此,对数据进行分类大有裨益。

字符串

字符串就是一系列字符,如’abcdefg’。它有三种定义方式:

str = 'abcdefg' #使用单引号

str = "abcdefg" #使用双引号

str = '''abcdefg''' #使用三引号,当没有换行时,与前两种完全相同
str = '''abcd 
efg'''              #当有换行时,三引号能够保存原有换行格式,而前两种不能

# 我们可以根据需要对不同引号嵌套,满足不同的需求
str = 'I told my friend,"Python is my favorite language!"'
print(str)
# 输出结果:I told my friend , "Python is my favorite language!"

字符串的方法

了解了字符串的定义,我们开始学习方法,我们看下面的例子:

name = "ada lovelace"
print(name.title())
# 输出结果:Ada Lovelace

方法是Python可对数据执行的操作。不同的数据类型可以调用不同的方法。通俗的讲,我们把不同的数据类型看做不同职业的人,那么不同职业的人各自的本领就是方法。在今后我们还会学习很多方法,方法 是我们学习编程语言最重要的其中一部分

使用方法:变量名.方法名() 括号中会提供使用方法必要的信息(参数)

在上面的例子中,name是字符串类型,调用了 title() 方法,即将每个单词首字母大写,类似的还有

name = "Ada Lovelace"
# 将字符串大写
print(name.upper())
# 将字符串小写
print(name.lower())

字符串的拼接

Python使用加号(+)来拼接字符串

# 拼接字符串
hello1 = '你'
hello2 = '好'
hello = hello1+hello2
print(hello)
# 输出结果:你好

请记住这个简单用法,我们今后还会用到它

关于空白

在编程中,空白泛指任何非打印字符,如空格,制表符(四个空格),换行符。我们可以使用空白来组织输出,以使其更易阅读

当我们需要在此处换行时,我们就需要转义字符 \\n

print('Hello world!')
# 输出结果:Hello world!
print('Hello\\nworld')
# 输出结果:Hello 
#			world!

要在字符串中添加制表符,可使用字符组合 \\t

print("Python")
# 输出结果:Python
print("\\tPython")
# 输出结果:	Python

当我们不需要多余的空白时,Python可以帮助我们删除多余的空白

str1 = ' Python '
str2 = 'qwer'
# 只删除串尾空白
print(str1.rstrip()+str2)
# 输出结果: Pythonqwer

# 只删除串首空白
print(str1.lstrip()+str2)
# 输出结果:Python qwer

#同时删除两边空白
print(str1.strip()+str2)
# 输出结果:Pythonqwer

敲一敲

  1. 个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消息为“Hello Eric(用户的姓名),would you like to learn some Python today?”
  2. 调整名字大小写: 将一个人的名字存储到一个变量中,再以小写,大写和首字母大写的方式显示这个人名。
  3. 名言: 找出依据你钦佩的名人说的名言,将这个名人的姓名和他的名言打印出来。输出应类似于下面这样(包括引号):Albert Einstein once said,“A person who never made a mistake never tried anything new.”
  4. 名言2: 将名人的姓名存储在变量 person 中,再创建要显示的消息,并将其存储在变量message中,然后打印message
  5. 剔除人名中的空白: 存储一个人名,并在其开头和结尾使用“/t”和“/n”来制造一些空白,打印这个人名。之后分别用 lstrip(),rstrip(),strip()对人名进行处理,并打印结果
username = 'Eric'
print('Hello '+username+',would you like to learn some Python today?')

name = 'Tom'
print(name.title()) #首字母大写
print(name.upper()) #大写
print(name.lower()) #小写

print('Albert Einstein once said,"A person who never made a mistake never tried anything new."')

person = 'Albert Einstein'
message = person + ' once said,"A person who never made a mistake never tried anything new."'
print(message)

name = '\\t\\nJerry\\n\\t'
print(name)
print(name.strip()) #去除两边空白
print(name.lstrip()) #去除串首空白
print(name.rstrip()) #去除串尾空白

数字

对于数字的操作想必大家并不陌生,我们先来看一下能对整数进行什么操作

# 加法
num = 2+3
print(num)
# 输出结果:5

# 减法
num = 2-3
print(num)
# 输出结果:-1

# 乘法
num = 2*3
print(num)
# 输出结果:6

# 乘方
num = 2**3
print(num)
# 输出结果:8

# 除法
num = 1/2
print(num)
# 输出结果:0.5

# 整除法
num = 1//2
print(num)
# 输出结果:0

# 取余(求模)
num = 4 % 3
print(num)
# 输出结果: 1

Python将带有小数点的数字都成位浮点数。浮点数的运算几乎与整数完全相同。需要注意的是,浮点数的运算结果仍然是浮点数

num = 0.5+0.5
print(num)
# 输出结果:1.0

num = 0.5 * 2
print(num)
# 输出结果:1.0

其次,你会偶尔发现这种现象

num = 0.2+0.1
print(num)
# 输出结果:0.30000000000000004 

鉴于计算机内部储存数字的方式,所有语言都会出现这种问题,在后来的学习中,我们将学习在需要时处理多余位小数的方式

加入,我们祝人生日快乐

age = 23
message = 'HAPPY '+ age + 'rd Birthday!'
print(message)

不出意外的话,他会出现意外

程序报错也就是我们程序员常说的 Bug:。俗话说“无Bug,不生活”,Bug对程序猿的追逐,对软件的痴迷,比现在的死忠粉还要厉害,不论在哪里,上天入地,都会与你在一起,不离不弃。

下面我们学习一下读报错内容

这句话是在提醒你报错的位置,是在"C:\\Users\\a\\Desktop\\python系统学习\\字符串.py"文件中的第112行中的 message = 'HAPPY '+ age + ‘rd Birthday!’

这句话是报错的内容 类型错误:只能连接字符串类型(而不是整数类型)到字符串

原来我们用字符串拼接的方法只能拼接字符串,而age是整数类型,因此它会报错

下面我们学习,怎样将整数类型转化为字符串类型

age = 23
message = 'HAPPY '+ str(age) + 'rd Birthday!'
print(message)
# 输出结果:HAPPY 23rd Birthday!

像上面的字符串中使用整数时,需要你明确地命令Python将这个整数转化为字符串。为此,可调用str()函数,它让Python将非字符串转换为字符串

在后面的学习中,我们将对函数展开全面的学习

敲一敲


最喜欢的数字: 将你最喜欢的数字存储在一个变量中,再使用这个变量创建一条消息,指出你最喜欢的数字,然后将这条消息打印出来

num = 2022888
message = 'Favorite number is '+str(num)
print(message)

注释

程序员最讨厌的两件事:
①给自己的程序写注释
②别人的程序没写注释


那么什么是注释呢?我们看下面的例子

注释就是说明代码的作用。随着程序越来越大,越来越复杂,恰当的注释能让后来的你知道当初写的什么鬼。后来的你一定会感谢现在努力写注释的你

如何写注释

在Python中,注释可以用 # 标识。在其后面的内容都会被解释器忽略

# 向大家问好
print("Hello Python people!")
# 输出结果:Hello Python people! 只执行了第二行

注释为什么重要

在开发项目期间,你对你的程序了如指掌,但过段时间后,有些细节你可能记不得了,通过编写注释,你能够很快的想起来当时为什么这么写,可以节省很多时间。其次要成为专业程序员,会不可避免的与他人合作,通过注释能让大家快速的交换思路,提高开发效率。作为新手,最值得养成的习惯之一是,在代码中编写清晰、间接的注释

初识列表

列表是一系列按特定顺序排列的元素(各种数据)组成。

通俗地讲,想象一个大箱子里有很多纸板做的隔间,我们可以把书本,日用品,衣服都可以放进去。然后,我们把隔间弄上编号0,1,2,3,4…,之后我们就可以根据编号来相应取出我们想要的的东西。

列表就是这个大箱子,数字,字符串各种数据类型都可以放进列表。根据他们的下标(从0开始),我们就可以取出我们想要的数据

基础中的基础

在 Python 中,用 方括号 [ ] 来表示列表,并用 , 来分隔其中的元素

# 创建列表
list = ['1','Lisa','Tom',1234]
print(list)
# 输出结果:['1', 'Lisa', 'Tom', 1234]

使用其下标来获取列表中的元素 注意:是从0开始

list = ['1','Lisa','Tom',1234]
print(list[0])
print(list[1])
print(list[2])
print(list[3])
'''输出结果:
1
Lisa
Tom
1234'''

我们写一个游戏,要求玩家射杀从天而降的外星人;为此,我们可以开始时将一些外星人存储在列表

aliens = ['亡刃将军','暗夜比邻星','黑矮星','乌木喉','超巨星']

有的外星人可以进化真·外星人,我们修改原列表中的外星人

aliens = ['亡刃将军','暗夜比邻星','黑矮星','乌木喉','超巨星']
aliens[0] = '真·亡灵将军' # 修改即给原下标重新赋值
print(aliens[0])
# 输出结果:真·亡灵将军

每当有外星人被射杀,就将其从列表中删除

aliens = ['亡刃将军','暗夜比邻星','黑矮星','乌木喉','超巨星']
del aliens[0] # “del 删除内容” 即可删除
print(aliens)
# 输出结果:['暗夜比邻星', '黑矮星', '乌木喉', '超巨星']

aliens = ['亡刃将军','暗夜比邻星','黑矮星','乌木喉','超巨星']
name = aliens.pop(1) # 使用pop()方法从列表中删除并返回删除内容,参数为下标,默认为最后一个
print(name)
print(aliens)
# 输出内容:
# 暗夜比邻星
# ['亡刃将军', '黑矮星', '乌木喉', '超巨星']

aliens = ['亡刃将军','暗夜比邻星','黑矮星','乌木喉','超巨星']
aliens.remove('超巨星')# 使用remove方法根据指定值删除列表中的内容,一次只能删除一个
print(name)
print(aliens)
# 输出内容:['亡刃将军', '暗夜比邻星', '黑矮星', '乌木喉']
# 注意:如果列表中没有指定删除的内容,编译器将会报错

每当有新外星人出现,就将其添加到列表中

aliens = ['亡刃将军','暗夜比邻星','黑矮星','乌木喉','超巨星']
aliens.append('灭霸') # 使用append方法添加到表位
print(aliens)
# 输出结果:['亡刃将军', '暗夜比邻星', '黑矮星', '乌木喉', '超巨星', '灭霸']

aliens = ['亡刃将军','暗夜比邻星','黑矮星','乌木喉','超巨星']
aliens.insert(0,'灭霸') # 可以使用inset方法插入到表中任意位置,第一个参数为目标位置,第二个参数为插入的内容
print(aliens)
# 输出结果: ['灭霸', '亡刃将军', '暗夜比邻星', '黑矮星', '乌木喉', '超巨星']

敲一敲

  1. 嘉宾名单:请创建一个列表,其中包含至少3个你想邀请的人;然后,使用这个列表打印消息,邀请这些人来与你共进晚餐。
  2. 修改嘉宾名单:你刚得知有位嘉宾无法赴约,因此需要另外邀请一位嘉宾。
    ·在程序末尾添加一条print语句,指出哪位嘉宾无法赴约。
    ·修改嘉宾名单,将无法赴约的嘉宾的姓名替换为新邀请的嘉宾的姓名。
    ·再次打印一系列消息,向名单中的每位嘉宾发出邀请。
  3. 添加嘉宾:你刚找到了一个更大的餐桌,可容纳更多的嘉宾。请想想你还想邀请哪三位嘉宾。
    ·在原程序末尾添加一条print语句,指出你找到了一个更大的餐桌。
    ·使用insert()将一位新嘉宾添加到名单开头。
    ·使用insert()将另一位新嘉宾添加到名单中间。
    ·使用append()将最后一位新嘉宾添加到名单末尾。
    ·打印一系列消息,向名单中的每位嘉宾发出邀请。
  4. 缩减名单:你刚得知新购买的餐桌无法及时送达,因此只能邀请两位嘉宾。
    ·在原程序末尾添加一行代码,打印一条你只能邀请两位嘉宾共进晚餐的消息。
    ·使用pop()不断地删除名单中的嘉宾,直到只有两位嘉宾为止。每次从名单中弹出一位嘉宾时,都打印一条消息,让该嘉宾知悉你很抱歉,无法邀请他来共进晚餐。
    ·对于余下的两位嘉宾中的每一位,都打印一条消息,指出他依然在受邀人之列。
    ·使用del将最后两位嘉宾从名单中删除,让名单变成空的。打印该名单,核实程序结束时名单确实是空的。
# 1
vistors = ['钢铁侠','雷神','绿巨人']
print('请以下嘉宾来赴宴:')
print(vistors)

# 2
print('绿巨人坐飞船去了宇宙,不能赴约')
vistors[2] = '鹰眼'
print('请以下嘉宾来赴宴:')
print(vistors)

# 3
print('我找到了一个更大的餐桌,我将邀请更多的人')
vistors.insert(0,'黑寡妇')
vistors.insert(2,'蜘蛛侠')
vistors.append('黑豹')
print('请以下嘉宾来赴宴:')
print(vistors)

# 4
print('不好意思,我买的餐桌不能及时送达,因此我只能邀请两位嘉宾共进晚餐')
vistor1 = vistors.pop()
print(vistor1+'很抱歉,不能邀请您来共进晚餐')
vistor2 = vistors.pop()
print(vistor2+'很抱歉,不能邀请您来共进晚餐')
vistor3 = vistors.pop()
print(vistor3+'很抱歉,不能邀请您来共进晚餐')
vistor4 = vistors.pop()
print(vistor4+'很抱歉,不能邀请您来共进晚餐')
print(vistors[0]+'您依然在受邀人之列')
print(vistors[1]+'您依然在受邀人之列')
del vistors[1]
del vistors[0]
print(vistors)
print('名单为空')

'''输出结果:
请以下嘉宾来赴宴:
['钢铁侠', '雷神', '绿巨人']
绿巨人坐飞船去了宇宙,不能赴约
请以下嘉宾来赴宴:
['钢铁侠', '雷神', '鹰眼']
我找到了一个更大的餐桌,我将邀请更多的人
请以下嘉宾来赴宴:
['黑寡妇', '钢铁侠', '蜘蛛侠', '雷神', '鹰眼', '黑豹']
不好意思,我买的餐桌不能及时送达,因此我只能邀请两位嘉宾共进晚餐
黑豹很抱歉,不能邀请您来共进晚餐
鹰眼很抱歉,不能邀请您来共进晚餐
雷神很抱歉,不能邀请您来共进晚餐
蜘蛛侠很抱歉,不能邀请您来共进晚餐
黑寡妇您依然在受邀人之列
钢铁侠您依然在受邀人之列
[]
名单为空
'''

玩一玩列表的顺序

在创建的列表中,元素的排列顺序常常是无法预测的,因为用户提供数据的顺序是我们不能控制的。因此,我们就有必要对列表使用一些方法,使其以特定的顺序呈现信息。

我们创建一个无序的数字列表

number = [5,4,2,6,1]

使用sort()方法对列表进行永久性排序

number = [5,4,2,6,1]
number.sort()
print(number)
# 输出结果:[1, 2, 4, 5, 6]

number = [5,4,2,6,1]
number.sort(reverse = True) #你还可以通过修改reverse参数进行倒序排列
print(number)
# 输出结果:[6, 5, 4, 2, 1]

sort()方法不会保留原来的排列顺序,如果你想保留原列表的排列顺序,可以试试sorted()函数

number = [5,4,2,6,1]
print(sorted(number))
print(number)
# 输出结果:[1, 2, 4, 5, 6]
#          [5, 4, 2, 6, 1] 原先的排列顺序并没有发生改变

下面我们将学习怎样反转列表元素的排列顺序

number = [5,4,2,6,1]
number.reverse()
print(number)
# 输出结果:[1, 6, 2, 4, 5]

与上面学习过的sort()方法中改变reverse参数的方法不同,reverse()方法只会反转原列表的排列顺序并不会进行大小比较后排列

在今后的程序里,我们将经常使用感到列表的长度,Python为我们提供了len()函数来轻松获取列表长度

number = [5,4,2,6,1]
num = len(number)
print(num)
# 输出结果:5

敲一敲


奇妙数字:想出至少五个数字
·将这些地方存储在一个列表中,并确保其中的元素不是按大小顺序排列的。
·按原始排列顺序打印该列表。不要考虑输出是否整洁的问题,只管打印原始Python列表。
·使用sorted()按大小顺序打印这个列表,同时不要修改它。
·再次打印该列表,核实排列顺序未变。
·使用sorted()按与大小顺序相反的顺序打印这个列表,同时不要修改它。
·再次打印该列表,核实排列顺序未变。
·使用reverse()修改列表元素的排列顺序。打印该列表,核实排列顺序确实变了。
·使用reverse()再次修改列表元素的排列顺序。打印该列表,核实已恢复到原来的排列顺序。
·使用sort()修改该列表,使其元素按大小顺序排列。打印该列表,核实排列顺序确实变了。
·使用sort()修改该列表,使其元素按与大小顺序相反的顺序排列。打印列表,核实排列顺序确实变了
·使用len()方法获取列表长度并打印

number = [1,2,5,3,6,Python爬虫入门这一篇就够了

Python爬虫入门这一篇就够了

华为出品Python入门教程:从零基础入门到精通,这一篇就够了

Redux从入门到进阶,看这一篇就够了!

Redux从入门到进阶,看这一篇就够了!

Redux从入门到进阶,看这一篇就够了!