一文了解Python基础知识

本文主要介绍 Python 入门的基础知识,包括 Python 学习路径和心得、输入输出、注释、变量、数据类型、运算符、格式化输出等。阅读本文预计需要 15 min。

1. 前言

本部分主要总结学习 Python 需要了解的一些知识。主要内容是:

  • Python 简介
  • Python 学习路径和心得
  • Python 输入输出
  • Python 注释
  • Python 变量
  • Python 数据类型(简单提及)
  • Python 运算符
  • Python 3 种格式化输出

2. Python 简介

最近几年,随着人工智能的兴起,掀起了一股 Python 学习热潮。Python 是一种简单易学、优雅简洁、免费开源、功能强大、面向对象、具有可扩展性、具有丰富的库、具有可移植性的高级解释型编程语言。它的主要不足在于运行速度相较于 C/C++ 慢一些,国内 Python 开发的岗位相对较少。

学好 Python 之后,我们可能从事的岗位有 Python 爬虫工程师、Python Web 开发、运维测试、算法工程师、数据挖掘工程师等,可以选择的方向还是比较多的,不过整体而言,Python 的岗位还是远少于 Java 的。秋招中,大多数公司都是要求 Java 语言。不过这并不影响我们学习 Python,一方面 Python 的优势突出,在市场占有一席之地,尤其是在 AI 领域,另一方面语言具有相通性,学好一门语言,其他语言上手也能非常快。

3. Python 学习路径和心得

我本硕都是和药学相关,与计算机专业一点都不沾边。一路以来,都是靠自学。自学过程中也走过不少弯路,踩过不少坑,但是在自学过程中,自己的各方面能力都得到了一定的锻炼。

  • 资料检索和甄别的能力:Python 学习资料形形色色,铺天盖地。能够高效地利用 Google 和百度等搜索引擎检索、甄别有效的 Python 学习资料,可以为我们节省大量时间和精力,少走弯路。比如:Python 的教学视频,我们就可以到 B 站去搜索播放量大、弹幕多、比较新的教程来跟着学习。B 站视频免费无广告,避免了不少冤枉钱。

  • 快速解决问题的能力:学习工作过程中总会遇到各种问题、踩到各种坑,快速解决问题的能力就显得尤为重要。对于搞计算机的人来说,遇到 Bug,要充分利用 Google、Stack Overflow、GitHub 等平台。我们的问题基本上都可以从这些平台找到解决办法。

  • 归纳总结的能力:站在巨人的肩膀上学习,能帮助我们节省很多时间。对于前人的知识结晶,我们也要有自己的归纳总结。刚开始学习编程的时候,我用的是纸质版的笔记。一段时间后,我发现纸质版笔记不易保存和随时查阅,写起来也慢,就放弃了。再后来我又发现,学习新知识不记笔记,过一段就会忘记,再需要的时候又得重新找来资料学习。如果有学习笔记,那么自己印象会深刻很多,再需要时忘记了也可以直接检索笔记即可。所以现在我学完一个新知识或技术基本都要做一篇电子版学习笔记,一方面是巩固新知识,另一方面也是方便日后查看。我建议大家学习的时候多做笔记,把好的笔记分享到 CSDN、简书、掘金等技术博客上,一方面可以帮助自己梳理巩固知识体系,另一方面也可以帮助那些遇到了相同问题的人。

学习编程的路径是看视频 + 看书 + 实战。视频相对更有趣,手把手教我们编程,倍速的时候不容易分神。书籍相对专业化、系统化、全面化。对于选择视频还是选择书籍学习,原则就一个,哪个能让你坚持学下去就看哪个。书看不下去了就看视频,视频看不下去了就看书。不管是看视频还是看书,一定要自己动手敲代码!要学会编程,一定要多敲代码!

此外再强调一点,Python 代码的规范性。代码规范不仅看着舒服,提高代码的可读性,也有利于团队开发合作。具体大家可以参考Google Python 风格规范,也可以参照PEP8 Python 代码指南,或者我总结的博客Python 编程风格指南。模仿大牛的代码也是一个很好的学习方法。

我的 Python 学习路径:Python 基础 --> Python 爬虫 --> Python Web。下面我推荐一些自己看过的觉得不错的 Python 学习资料,基本都是可以免费获取。

Python 入门:

  1. 北理嵩天老师的 MOOC 课程Python 语言程序设计,结合计算机二级 Python 书籍,学完应付 Python 二级考试不成问题,对 Python 基础也有了一定的了解。
  2. 廖雪峰老师的Python 教程,廖雪峰老师的这个网页教程入门也是非常不错的。
  3. 骆昊老师的Python - 100 天从新手到大师,这个 GitHub 项目 star 81.1k 非常火,涵盖了 Python 的方方面面,按照这个路径学完全没有问题。
  4. 《笨方法学 Python3》
  5. 《Python Cookbook 3rd Edition》,网页版Python Cookbook 3rd Edition
  6. Python 官网入门教程

进阶:

  1. 《Fluent Python》即《流畅的 Python》
  2. 《Effective Python:编写高质量 Python 代码的 59 个有效方法》
  3. 《Python 核心编程》
  4. Python 官方参考资料

初学者面对这么资料难免会焦虑,担心学不完。其实不用考虑那么多,按照一份教程踏实的学下去,先入门。以后再多阅读各种书籍,到时自己也能比较各本书的优劣之处了。技术之路是终生学习,每日学习之路,生命不息,学习不止!
接下来就正式进入我们的 Python 学习之旅吧。

4. Python 输入输出

计算机的工作就是对输入进行处理,然后把处理结果输出。我们的程序的工作也是对输入进行处理,然后把处理结果输出。

Python 中输入输出是通过 input()print() 函数实现的。

示例:

name = input("请输入你的名字:")
print(name)

输出结果如下:
请输入你的名字:Jock
Jock

这里 name = input("请输入你的名字:")表示input() 接收一个字符串,并把这个字符串赋值给了变量 name,什么是变量,我们后面会讲。print(name)表示把变量name的值输出。

这里有一个小技巧,如果忘记了某个函数的使用方法,可以用help(函数名)或者print(函数名.__doc__)查看这个功能的用法。
比如:

help(print)

输出结果如下:
Help on built-in function print in module builtins:
print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.

5. Python 注释

注释是对代码的解释和说明。恰当的注释可以增强代码的可读性,便于我们日后代码维护,也便于团队开发。Python 中注释主要是通过 # 、三个单引号、三个双引号实现的。其中 # 是实现单行注释,三个单引号或者三个双引号是实现多行注释。

示例如下:

# 这是单行注释
name = 'Jock'  # 这也是单行注释
'''
这是三个单引号多行注释

这是三个单引号多行注释
'''

"""
这是三个双引号多行注释

这是三个双引号多行注释
"""
print(name)

6. Python 变量

在计算机中变量是一个存储临时数据的容器。比如:name = 'Jock' 就是把 Jock 这个字符串赋值给了 name 这个变量,装到了 name 这个容器中。需要注意:变量必须先赋值后使用

格式:变量名 = 值,如: name = 'Jock'

6.1 变量命名硬性规则

  1. 由字母、下划线、数字组成,并且只由字母或者下划线开头,不能以数字开头。
  2. 不要使用 Python 关键字作为变量名。
  3. 尽量使用具有实际含义的变量名,比如用 name 表示姓名,age 表示年龄。
  4. 大小写敏感,如:大写的a和小写的A是两个不同的变量。

注: Python 关键字是指在 Python 中具有特殊功能的标识符。标识符是开发人员在程序中自定义的一些符号和名称,如变量名、函数名等。可以通过以下代码查看 Python 关键字:

import keyword  # 导入 keyword 库


# 打印 Python 关键字的个数
print(len(keyword.kwlist))  # len() 计算容器所含元素的个数,使用 help(len) 可以查看 len()函数的用法
print(keyword.kwlist)  # 输出 Python 关键字列表

结果输出:
35
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

6.2 常用变量命名方式

常用变量命名方式有以下几种:

  1. 下划线命名法:单词全部小写,并且不同单词通过下划线连接。如:my_name = 'Jock'
  2. 小驼峰命名法:第一个单词首字母小写,其他单词首字母大写。如:myName = 'Jock'
  3. 大驼峰命名法:所有单词首字母大写。如:MyName = 'Jock'

Python 中变量命名方式推荐遵循 PEP 8 要求:

  1. 用小写字母拼写,多个单词用下划线连接。
  2. 受保护的实例属性用单个下划线开头(以后会讲)。
  3. 私有的实例属性用两个下划线开头(以后会讲)。

此外我们还可以利用type()函数来查看变量的类型。

示例:

age = 25  # 将 25 赋值给变量 age
print(type(age))  # 打印变量 age 的数据类型

输出结果:
<class 'int'>

这里我们可以看到 age变量是 int 数据类型,即整型。待会我们会讲。

7. Python 数据类型

计算机能处理文本、图像、音频等各种数据,那么我们存储这些信息就需要不同的数据类型。

7.1 Python 常见数据类型

符号说明举例
int整型,即整数1, 2, 3
float浮点数,即小数1.1, 2.2, 3.3
str字符串,用单引号或双引号或三引号括起来的任意文本‘a’, “a”, “”“a”"", ‘’‘a’’’
bool布尔类型,即真假两种True, False
NoneType空值,Python 中 None 不能理解为 0,它是一个特殊的空值None
list列表[1, 2, 3]
tuple元组(1, 2, 3)
set集合{1, 2, 3,}
dict字典{‘name’:‘Jock’, ‘age’:15}

对于 str、list、tuple、set、dict 后面我会进行总结。

7.2 Python 数据类型转换

在 Python 中可以用一些函数来实现数据类型的转换。

函数说明
int(x)将 x 转换为整数
float(x)将 x 转换为浮点数
complex(real,[imag])创建一个复数,real 为实部,imag 为虚部
str(x)将 x 转换为字符串
repr(x)将 x 转换为表达式字符串
eval(str)用来计算字符串中的 Python 表达式并返回一个对象(慎用)
tuple(s)将序列 s 转换为一个元组
list(s)将序列 s 转换为一个列表
chr(x)将一个整数转换为一个 Unicode 字符
ord(x)将一个字符转换为它的 ASCII 整数值
hex(x)将一个整数转换为一个十六进制字符串
oct(x)将一个整数转换为一个八进制字符串
bin(x)将一个整数转换为一个二进制字符串

8. Python 运算符

8.1 算数运算符

运算符描述举例
+1 + 2 = 3
-3 - 1 = 2
*2 * 3 = 6
/3 / 2 = 1.5
//取整除,向负无穷取整,返回整数部分9 // 2 = 4
%取余,返回除法的余数10 % 3 = 1
**指数2 ** 3 = 8

算数运算符有优先级顺序,** > * / % // > + -,为了避免歧义,增强代码可读性,建议用()来处理运算符优先级。

8.2 赋值运算符

运算符描述举例
=赋值运算符把 = 号右边的结果赋给左边的变量,如:n = 1 + 2*5,结果 n 的值为 11
+=加法赋值运算符a += b 等价于 a = a + b
-=减法赋值运算符a -= b 等价于 a = a - b
*=乘法赋值运算符a _= b 等价于 a = a _ b
/=除法赋值运算符a /= b 等价于 a = a / b
%=取模赋值运算符a %= b 等价于 a = a % b
**=幂赋值运算符a **= b 等价于 a = a ** b
//=取整除赋值运算符a //= b 等价于 a = a // b

注意: Python 中可以多个变量赋值,如:a, b, c = 1, 2, 3

8.3 关系运算符

运算符描述
>大于
>=大于等于
<小于
<=小于等于
!=不等于
==等于

8.4 逻辑运算符

运算符描述
not
and与,全真为真,一假全假
or或, 全假为假,一真全真

注意:and 和 or 均遵守逻辑短路原则。

8.5 其他

运算符描述举例
in成员运算符1 in [1, 2, 3] 结果为 True
not in成员运算符1 not in [1, 2, 3] 结果为 False
is身份运算符1 is 1 结果为 True
is not身份运算符1 is not 1 结果为 False
~位运算符,按位取反~1 结果为 -2
&位运算符,按位取反1 & 2 结果为 0
|位运算符,按位取反1 | 2 结果为 3
<<移位运算符,左移1 << 2 结果为 4
>>移位运算符,右移4 >> 2 结果为 1

9. Python 格式化输出

我们在输出的时候还要考虑格式的问题,比如居中、左对齐等等。Python 中有 3 种方式来实现格式化输出。
最老的是从 C 语言上面继承过来的 % printf-style String Formatting 模式,然后是 format 格式化,再到现在 Python 3.6 开始出现的 f-string 格式化。如今推荐使用 f-string 格式,当然 %等格式化还是继续支持的。

示例:

name = 'Jock'
age = 25
money = 6.666666
# 采用 % 格式化输出
print('我的名字是:%s,年龄是:%d,总共财产是:%.2f' % (name, age, money))
# 采用 format 格式化输出
print('我的名字是:{},年龄是:{},总共财产是:{:.2f}'.format(name, age, money))
# 采用 f-string 格式化输出
print(f'我的名字是:{name},年龄是:{age},总共财产是:{money:.2f}')

结果输出:
我的名字是:Jock,年龄是:25,总共财产是:6.67
我的名字是:Jock,年龄是:25,总共财产是:6.67
我的名字是:Jock,年龄是:25,总共财产是:6.67

这里分享一个自己的经验,Python 中函数非常多,有时我们可能会忘记一个函数的用法,这个时候除了前面的用 help(function_name)print(function_name.__doc__) 以外,还可以充分利用 Python 的官方文档。受网络影响,网页版有时打开较慢。我们可以安装一个最新的 Python 安装包,比如现在的 Python 3.8,然后电脑里面就会存在 Python 3.8 Manuals 文件,里面包含了 Python 3.8 有关的所有官方文档。我们可以在Python 3.8 Manuals 检索我们的函数,可以轻松找到相关的用法和示例。

知识很多,需要我们一点一点去学习,去总结。成长路上,困难总是难免的,积极的去面对困难,找到解决困难的办法!

10. 巨人的肩膀

  1. The Python 3.8 Tutorial

推荐阅读:

  1. 编程小白安装Python开发环境及PyCharm的基本用法
  2. 一文了解Python基础知识
  3. 一文了解Python数据结构
  4. 一文了解Python流程控制
  5. 一文了解Python函数
  6. 一文了解Python部分高级特性
  7. 一文了解Python的模块和包

后记:
我从本硕药学零基础转行计算机,自学路上,走过很多弯路,也庆幸自己喜欢记笔记,把知识点进行总结,帮助自己成功实现转行。
2020下半年进入职场,深感自己的不足,所以2021年给自己定了个计划,每日学一技,日积月累,厚积薄发。
如果你想和我一起交流学习,欢迎大家关注我的微信公众号每日学一技,扫描下方二维码或者搜索每日学一技关注。
这个公众号主要是分享和记录自己每日的技术学习,不定期整理子类分享,主要涉及 C – > Python – > Java,计算机基础知识,机器学习,职场技能等,简单说就是一句话,成长的见证!
每日学一技

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值