本文主要梳理一些 Python 入门的基础知识,分享给每一位走在IT路上的侠客~
全文知识梳理来源于《Python编程 从入门到实践(第2版)》
声明:未打广告,豆瓣评分9.3,刷博客时见多个大佬推荐。入手后真心感觉很棒,,,
DIY 1
本文知识框图一览
-
第一章
-
关于 Python 编程环境的搭建, C站 好多博主都有详细教程就不在过多演示了
-
注:例中所有 >>> 符号后为输出结果
- 第二章
第一个代码块,我们熟悉的 Hello world !
# 例 1
message = 'Hello Python world'
print(message)
# >>> Hello Python world
1. 字符串就是一系列字符。在 Python 中,用引号括起的都是字符串,其中的引号可以是单引号也可以是双引号。(注意要用英文引号)例 1 中 'Hello Python world' 便是一个字符串,并赋给了 message 变量。
# 例 2
name = 'ada lovelace'
print(name.title()) # 方法: .title() 首字母大写
print(name.upper()) # 方法: .upper() 全部大写
print(name.lower()) # 方法: .lower() 全部小写
# >>>
# Ada Lovelace
# ADA LOVELACE
# ada lovelace
2. 方法是 Python 可对数据执行的操作,在例 2 中 name.title() 中,name 后面的句点 (.) 让 Python 对变量 name 执行方法 title() 指定操作。每个方法后面跟着一对圆括号,通常需提供额外的信息来完成其工作。此处函数 title() 不需要额外信息,因此括号内为空。
# 例 3
first_name = 'ada'
last_name = 'lovelace'
full_name = f'{first_name} {last_name}' # f字符串,f是format的简写;{} 放入变量,显示变量值
print(full_name)
# >>> ada lovelace
message = f'Hello,{full_name.title()}!' # 运用了例2中的方法改变了输出字符的首字母大小写
print(message)
# >>> Hello,Ada Lovelace!
full_name1 = '{} {}'.format(first_name,last_name) # 方法 format()示例
print(full_name1)
# >>> ada lovelace
3. 在字符串中使用变量来输出变量中的值,可使用 f 字符串 同时可以运用方法改变输出格式。例 3 中分别演示 f 与 format() 用法。
# 例 4
# 添加空白
first_name = 'ada'
last_name = 'lovelace'
print(f'\tHello,\n{first_name} {last_name}'.title()) # \t 制表符; \n 换行符
# >>>
# Hello,
# Ada Lovelace
# 删除空白
favorite_language = ' python '
favorite_language1 = favorite_language.rstrip() # .rstrip() 删除尾部空白
favorite_language2 = favorite_language.lstrip() # .lstrip() 删除首部空白
favorite_language3 = favorite_language.strip() # .strip() 删除两端空白
print(favorite_language1)
print(favorite_language2)
print(favorite_language3)
# >>>
# python
#python / 后面这个斜杠表示空格,不然没法具象表现出来
#python
4. 制表符、换行符用来控制输出字符的格式,例 4 中演示几种应用供大家参考。
5. 整数和浮点数
Python 中任意两个数相除时,结果总是浮点数,即便两个数都是整数且能整除。
在其他任何运算中,如果一个操作数是整数,另一个操作数是浮点数,结果依然是浮点数。
6. 注释
可以让你使用自然语言在程序中添加说明,Python 中注释使用 # 号标识。井号后的内容 Python解释器会忽略。
7. Python之禅让你的代码更简约更清晰更优美。下文为有道词典翻译,搬运给大家鉴赏。。。
《 Python 之禅》,作者Tim Peters
美丽总比丑陋好。
显性比隐性好。
简单胜于复杂。
复杂总比复杂好。
平铺总比嵌套好。
稀疏比稠密好。
可读性。
特殊的案例并不特别到可以打破规则。
尽管实用性胜过纯度。
错误不应该悄无声息地过去。
除非显式地沉默。
面对模棱两可,拒绝猜测的诱惑。
应该有一种 — — 最好只有一种 — — 明显的方法。
虽然这种方式一开始可能不明显,除非你是荷兰人。
现在总比没有好。
虽然从来没有比现在更好。
如果实现很难解释,这是一个坏主意。
如果实现很容易解释,这可能是一个好主意。
名称空间是一个非常棒的主意——让我们做更多这样的事情吧!
有兴趣的可尝试神秘代码 import this,自行查看。
- 第三章
# 例 5
# 列表
bicycles = ['trek','cannondale','redline','specialized'] # 自行车,分类列表
# 列表变量命名,可以在尾部添加‘s’复数表示。
print(bicycles)
print(bicycles[-1]) # 提取列表中最后一个元素
print(bicycles[1].title()) # 提取列表中第二个元素,并以首字母大写方式输出
# >>>
# ['trek', 'cannondale', 'redline', 'specialized']
# specialized
# Cannondale
1. 列表是由一系列按特定顺序排列的元素组成。
访问列表元素可以使用索引,例 5 中演示了如何使用索引访问列表中特定位置的元素,并进行输出。索引从 0 开始而不是从 1 开始,列表中的元素从左到右排列的索引是 0, 1, 2, 3 ;从右往左排列的索引是 -1, -2, -3, -4;
# 例 6
# 创建一个列表
motorcycles = ['honda','yamaha','suzuki']
# 向列表中添加元素
motorcycles.append('ducati_1') # 方法 .append() 在列表最后添加元素
print(motorcycles)
# >>> ['honda', 'yamaha', 'suzuki', 'ducati_1']
motorcycles.insert(0,'ducati_2') # 方法 .insert() 指定列表位置添加元素,列表中的每个元素往右移
print(motorcycles)
# >>> ['ducati_2', 'honda', 'yamaha', 'suzuki', 'ducati_1']
# 创建一个空的列表
motorcycles_1 = []
motorcycles_1.append('honda_1') # 使用 .append() 可向空列表中逐个添加元素
motorcycles_1.append('yanaha_1')
print(motorcycles_1)
# >>> ['honda_1', 'yanaha_1']
# 修改列表中的元素
motorcycles[0] = 'ducati' # 修改列表中第一个元素为新的字符串
print(motorcycles)
# >>> ['ducati', 'honda', 'yamaha', 'suzuki', 'ducati_1']
#删除元素
del motorcycles[0] # del语句 删除指定位置元素
print(motorcycles)
# >>> ['honda', 'yamaha', 'suzuki', 'ducati_1']
popped_motorcycles = motorcycles.pop(2) # 方法 .pop('可指定列表元素,默认最后一个元素'),删除指定元素,并弹出赋值给新的变量
print(motorcycles)
print(popped_motorcycles,'!!!')
# >>> ['honda', 'yamaha', 'ducati_1']
# >>> suzuki !!!
too_expensive = 'honda'
motorcycles.remove(too_expensive) # 方法 .remove() 根据指定元素值,删除相应元素。元素值若是重复,只能删除一个,或者使用循环全部删除。
print(motorcycles)
print(f'\n因为***,所以删除{too_expensive}')
# >>> ['yamaha', 'ducati_1']
# >>> 因为XX,所以删除honda
2. 修改、添加、删除元素也就是对列表进行增、删、改等操作。例 6 中详细例举了几种简单的应用。
# 例 7
# 组织列表
#永久排序
cars = ['bmw','audi','toyota','subaru']
cars.sort() # 方法 .sort()按照首字母顺序永久性修改列表元素序列排序
print(cars)
# >>> ['audi', 'bmw', 'subaru', 'toyota']
cars.sort(reverse=True)# reverse=True 相反顺序排列
print(cars)
# >>> ['toyota', 'subaru', 'bmw', 'audi']
#临时排序
print(sorted(cars)) # 函数sorted() 按首字母顺序临时对列表排序
print(cars) # 打印原始列表
# >>> ['audi', 'bmw', 'subaru', 'toyota']
# >>> ['toyota', 'subaru', 'bmw', 'audi']
#倒着打印列表
cars.reverse() # 方法reverse() 相反顺序排列
print(cars)
# >>> ['audi', 'bmw', 'subaru', 'toyota']
#确定列表长度
print(len(cars)) # len() 确定列表元素个数,长度
# >>> 4
3. 组织列表便是对列表中的元素根据自己的需要进行排序。例 7 中列举了几种组织列表的方法。其中永久排序方法 sort() 会对原始列表进行改变,若是不想改变原始列表可使用临时排序方法 sorted() 。
第四章
# 例 8
# 遍历整个列表
magicians = ['alice','david','carolina']
for magician in magicians: # for循环 从列表中取出一个元素,使其与变量magician相关联。
print(magician)
# >>> alice
# >>> david
# >>> carolina
1. 遍历整个列表,运用 for 循环 遍历列表元素,例 8 中从列表 magicians 取出一个元素,并将其与变量 magiian 关联,对列表中所有元素进行了逐个输出。
# 例 9
#使用range()函数
for value in range(1,5): # 打印数1~5
print(value)
# >>> 1
# >>> 2
# >>> 3
# >>> 4
for value in range(6): # 打印数0~5
print(value)
# >>> 0
# >>> 1
# >>> 2
# >>> 3
# >>> 4
# >>> 5
# range()创建数字列表
numbers = list(range(2,11,2)) # 函数list() ,将range()作为参数,输出一个数字列表。
# range()第3个参数指定步长,不断增加步长直到或超过终值。
print(numbers)
# >>> [2, 4, 6, 8, 10]
# 列表平方运算
# 形式 1
# 创建列表
squares = []
for value in range(1,11): # 遍历循环输出1~10
square = value ** 2 # 每个值的平方结果,赋值到新的变量
squares.append(square) # 将变量中的值通过 方法 .append() 添加到列表最后
print(squares) # 打印列表
# >>> [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# 形式 2
squares = []
for value in range(1,11):
squares.append(value ** 2) # 每个值的平方结果,通过 方法 .append() 添加到列表最后
print(squares)
# >>> [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# 形式 3
squares = [value ** 2 for value in range(1,11)] # 创建列表,并遍历循环输出1~10,输出结果平方,添加到列表
print(squares) # 打印列表
# >>> [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# 数字列表统计计算
digits = [number_1 for number_1 in range(10)]
print(digits)
print(min(digits)) # 函数 min() 最小值
print(max(digits)) # 函数 max() 最大值
print(sum(digits)) # 函数 sum() 总和
# >>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# >>> 0
# >>> 9
# >>> 45
2. 创建数值列表
for 循环 配合 函数 range() 生成一系列数值。
range(2,9,2) 第一个参数代表开始数值,第二个参数代表的结束数值,第三个参数代表步长。
>>> 2 4 6 8
以 2 为 起始,以 2 为步长(也就是每次 + 2),一直输出到 8;
然后将遍历的数值逐个存储到空的列表中。例 9 中列举了 3 种代码书写形式,所达到的目的一致。例中最后对列表中的数做了三种统计计算,最小值、最大值、求和。
# 例 10
# 切片
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[1:3]) # 要输出列表中的第二、三个元素,需指定索引1和3,将返回索引1,2的元素
print(players[:4]) # 如果没有指定第一个索引,将自动从列表开头开始。
print(players[-3:]) # 如果没有指定最后一个索引,将自动输出到列表结尾。
# >>> ['martina', 'michael']
# >>> ['charles', 'martina', 'michael', 'florence']
# >>> ['michael', 'florence', 'eli']
# 遍历切片
for player in players[:3]: # 遍历输出 切片 前三个元素
print(player.title()) # .title() 首字母大写
# >>> Charles
# Martina
# Michael
3. 切片可以指定列表中一段连续的元素,可以是多个或一个元素,提取出来进行需要的操作。例 10 中示例了切边的使用方法,及使用 for 循环 对切片后的元素进行一定操作。
# 例 11
# 复制列表
my_foods = ['pizza', 'falafel', 'carrot cake'] # 创建列表
friend_foods = my_foods[:] # [:] 同时省略起始索引,终止索引。即切片整个列表;
# 整个列表副本,赋值到新的变量。即创建了一个列表副本;
print('My favorite foods are:', my_foods)
print("\nMy friend's favorite foods are:", friend_foods)
# >>> My favorite foods are: ['pizza', 'falafel', 'carrot cake']
# >>> My friend's favorite foods are: ['pizza', 'falafel', 'carrot cake']
# 分别向原始列表及列表副本中添加不同元素,验证确保互不影响。
my_foods.append('cannoli') # 列表末尾处添加元素
friend_foods.append('ice crem')
print('\nMy favorite foods are:', my_foods) # 确认为两个不同的互不影响的列表
print("\nMy friend's favorite foods are:", friend_foods)
# >>> My favorite foods are: ['pizza', 'falafel', 'carrot cake', 'cannoli']
# >>> My friend's favorite foods are: ['pizza', 'falafel', 'carrot cake', 'ice crem']
4. 复制列表 可创建一个包含所有列表的切片,作为列表副本。例 11 中做了详细的示例及验证。
# 例 12
# 定义元组
dimensions = (200, 50) # 使用圆括号来标识元组,不可修改。
dimensions_1 = (3,) # 严格来说使用 “ , ” 逗号来标识元组,若只定义一个元素,必须添加逗号;
print(dimensions[0])
print(dimensions[:])
print(dimensions_1)
# >>> 200
# >>> (200, 50)
# >>> (3,)
#遍历元组
for dimension in dimensions:
print(dimension)
# >>> 200
# 50
#元组变量重新赋值
dimensions = (100,) # 虽然不能修改元组,但可以给元组变量重新赋值。
for dimension in dimensions:
print(dimension)
# >>> 100
5. 元组看起来很像列表,使用 () 标识。列表是不可变的无法对其中的元素进行修改,但是可以对元组变量重新赋值。访问元组的方法与访问列表方法一致,可使用索引、切片。
第五章
# 例 13
# if 语句,应用示例
cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars: # 遍历列表cars
if car == 'bmw': # 判断条件是否为'bmw'
print(car.upper()) # 输出 全部为大写
else:
print(car)
# >>> audi
# BMW
# subaru
# toyota
# 条件测试
#检查是否相等
car = 'bmw'
print(car == 'bmw') # 相等返回Ture
# >>> True
print(car == 'audi') # 不等返回False
# >>> False
print(car == 'Bmw') # Python 中检查是否相等区分大小写
# >>> False
print(car.upper() == 'BMW') # 若大小写无关紧要,只检查值,可转换为 大/小 写后再比较
# >>> True
#检查是否不相等
requested_topping = 'mushrooms'
if requested_topping != 'anchovies':
print("Hold the anchovies!")
# >>> Hold the anchovies!
#使用and 检查多个条件
age_0 = 22
age_1 = 18
age = age_0 >= 21 and age_1 >= 21 # 只要一个条件不成立返回False,两个条件都成立返回True
print(age)
# >>> False
#使用or 检查多个条件
age = age_0 >= 21 or age_1 >= 21 # 只要一个条件成立返回True,两个条件都不成立返回False
print(age)
# >>> True
#使用in 检查特定值是否包含再列表中
requested_toppings = ['mushrooms', 'onions', 'pineapple']
print('mushrooms' in requested_toppings) # 若值在列表中返回True,不在返回False
# >>> True
#使用not in 检查特定值是否包含再列表中
requested_toppings = ['mushrooms', 'onions', 'pineapple']
print('mushrooms' not in requested_toppings) # 若值在列表中返回False,不在返回True
# >>> False
1. if 语句让你能够检查一系列的条件,并据此决定采取何种措施。核心是一个值为 True 或 False 的表达式,称之为条件测试。以此来决定是否执行 if 语句中的代码,True 执行,False 忽略。例 13 中还列举了一些条件测试的方法。
扩展应用:
# 例 14
#使用 if语局处理列表
#检查特殊元素
requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']
for requested_topping in requested_toppings: # 遍历列表
if requested_topping == 'green peppers': # 判断元素为此
print('Sorry, we are out of green peppers right now.')
else:
print(f'Adding {requested_topping}.')
# >>> Adding mushrooms.
# Sorry, we are out of green peppers right now.
# Adding extra cheese.
#确定列表不为空
requested_toppings_1s = []
if requested_toppings_1s: # 判断Python中列表至少包含一个元素为True,列表为空时为False
for requested_toppings_1 in requested_toppings_1s:
print(f'Adding {requested_toppings_1}.')
print('Finished making your pizza!')
else:
print('\nAre you sure you want a plain pizza?')
# >>> Are you sure you want a plain pizza?
#使用多个列表
available_toppings = ['mushrooms', 'green peppers', 'extra cheese', 'olives', 'pepperoni', 'pineapple']
requested_toppings = ['mushrooms', 'french fries', 'extra cheese']
for requested_topping in requested_toppings:
if requested_topping in available_toppings: # 判断遍历列表requested_toppings输出的元素是否存在与列表available_toppings中
print(f'\nAdding {requested_topping}.')
else:
print(f"Sorry, we don't have {requested_topping}.")
# >>> Adding mushrooms.
# Sorry, we don't have french fries.
# Adding extra cheese.
感谢,每一位认真阅读到这里的 少侠。
分享知识让人身心愉悦,同时此篇文章若是能帮到你,那我更是开心了,哈哈哈。。。
基础篇后续应该还会有两篇文章,觉得还不错的记得 一键三联啊~
不迷路~