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
敲一敲
- 将“人生苦短,我用Python”存储到变量中,再将其打印出来
- 再将变量修改为“我爱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
敲一敲
- 个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消息为“Hello Eric(用户的姓名),would you like to learn some Python today?”
- 调整名字大小写: 将一个人的名字存储到一个变量中,再以小写,大写和首字母大写的方式显示这个人名。
- 名言: 找出依据你钦佩的名人说的名言,将这个名人的姓名和他的名言打印出来。输出应类似于下面这样(包括引号):Albert Einstein once said,“A person who never made a mistake never tried anything new.”
- 名言2: 将名人的姓名存储在变量 person 中,再创建要显示的消息,并将其存储在变量message中,然后打印message
- 剔除人名中的空白: 存储一个人名,并在其开头和结尾使用“/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)
# 输出结果: ['灭霸', '亡刃将军', '暗夜比邻星', '黑矮星', '乌木喉', '超巨星']
敲一敲
- 嘉宾名单:请创建一个列表,其中包含至少3个你想邀请的人;然后,使用这个列表打印消息,邀请这些人来与你共进晚餐。
- 修改嘉宾名单:你刚得知有位嘉宾无法赴约,因此需要另外邀请一位嘉宾。
·在程序末尾添加一条print语句,指出哪位嘉宾无法赴约。
·修改嘉宾名单,将无法赴约的嘉宾的姓名替换为新邀请的嘉宾的姓名。
·再次打印一系列消息,向名单中的每位嘉宾发出邀请。 - 添加嘉宾:你刚找到了一个更大的餐桌,可容纳更多的嘉宾。请想想你还想邀请哪三位嘉宾。
·在原程序末尾添加一条print语句,指出你找到了一个更大的餐桌。
·使用insert()将一位新嘉宾添加到名单开头。
·使用insert()将另一位新嘉宾添加到名单中间。
·使用append()将最后一位新嘉宾添加到名单末尾。
·打印一系列消息,向名单中的每位嘉宾发出邀请。 - 缩减名单:你刚得知新购买的餐桌无法及时送达,因此只能邀请两位嘉宾。
·在原程序末尾添加一行代码,打印一条你只能邀请两位嘉宾共进晚餐的消息。
·使用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爬虫入门这一篇就够了