你好,我是zhenguo

这是Python10天入门闯关Day2的文字版,全文4000字。
结合我录制的视频操作学习,效果最佳。其中最后一个项目的完整代码放到文章最后,希望帮助到你,关注我的视频号+给视频点个赞:

Python入坑前必知10件事

最近1周,权威排名统计网站IEEE Spectrum ,公布编程语言最新排名:Python 不管在就业市场,未来发展趋势,开源社区等多个排名中全部霸榜,这个消息还是挺鼓舞人心。
会用Python,已经成为越来越多开发者和程序员的共识。
下面我们进入Python 10天入门闯关的Day2,介绍:Python入坑前必知10件事
包括:
  • 1 Python解释型
  • 2 Python 特点
  • 3 Python之禅
  • 4 Python 包管理
  • 5 Python虚拟环境
  • 6 Python下载安装
  • 7 第一行Python代码
  • 8 集成开发环境介绍
  • 9 代码调试
  • 10 第一个Python项目
这个视频对于想入门Python的朋友非常有用,可以先收藏一下。

1 Python解释型

python是一门解释型语言。
源代码在编译器编译成字节码(PyCodeObject)放在内存中,最常用解释器是CPython,它负责一条一条的解释成机器语言给计算机来执行。
编译过某些Python模块后,会看到目录中有pyc文件,实际它是内存中PyCodeObject缓存到pyc文件后的结果。

2 Python 特点

Python语言简洁明了,实现同一功能代码量更少;
Python也是面向对象的,与其他主要的语言如C++和Java相比, Python以一种非常强大又简单的方式实现面向对象编程;
同时跨平台可移植性好;
除了200多个自带的内置模块外还有丰富的第三方库。

3 Python之禅

Python之禅 by Tim Peters


优美胜于丑陋(Python 以编写优美的代码为目标)

明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)

简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)

复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)

扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)

间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)

可读性很重要(优美的代码是可读的)

即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)


不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)


当存在多种可能,不要尝试去猜测

而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)

虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )


做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)


如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)


命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

4 包管理

Python最吸引人地方之一就是拥有丰富的第三方包,因此知道最常用的包管理工具就是必须的。常用的包管理工具 pip 和 conda,pip 是官方的管理工具,conda 是anaconda的,conda不仅能安装包还能做虚拟环境管理,两者的区别如下:

5 虚拟环境

同时装了Python3和Python2,怎么办?直接卸掉python2,除非你有线上项目还在使用python.
如果不同项目需要不同python版本,该怎么?需要知道虚拟环境管理。
为什么会有虚拟环境?在实际项目开发中,项目A需要某个包1.0版本,项目B需要此库2.0版本。如果没有安装虚拟环境,那么当你使用这两个项目时,你就需要来回的卸载安装, 这样很容易给你的项目带来莫名的错误。
怎么做虚拟环境管理,使用conda工具:

6 Python下载安装

下载安装Python最推荐的方法是使用 anaconda,这是一个套装,包括很多最常用的包,还有IPython,Jupyter notebook这种最常用的开发利器。
(1). Anaconda的下载
可以从官网https://www.anaconda.com/download/下载Anaconda的安装程序,在该页面选择你电脑所对应的系统(Windows、macOS or Linux)以及操作系统位数(64位 or 32位)
(2) Anaconda的安装   
下载后的文件为.exe文件,双击该文件进入安装界面,依次点击Next –> I agree –> Next

在选择安装目录界面,默认安装路径为C盘。如果想更改安装路径,先在想要安装的目录下新建Anaconda的文件夹,然后选择该路径。
(3) 然后点击Next进入到Advanced Options界面。其中有两个选项框,建议将第二个选项框(Add Anaconda to my PATH environment variable,默认为不选)选上。

7 第一行Python代码

运行第一行Python代码,直接启动cmd,输入Python,执行hello world, 打印成功,表明安装Python成功
但是我们看到提示,已经安装anaconda,但是并没有激活,根据上面的conda info -e 命令我们先查看有哪些私有环境
base 是默认安装的私有环境,untitled是我另一个创建的私有环境,下面使用 conda activate untitled 激活untitled私有环境,激活后行首出现括号 untitled

8 集成开发环境介绍

集成开发环境是基于Python解释器为了加速程序员的开发效率而打造的一个开发利器,使用它们100%提高我们的开发效率和代码调试效率。
Python最常用的集成开发环境,pycharm,  jupyter notebook, vscode,其中 jupyter notebook是交互式的,我们输入一行,Alt+Enter 回车直接得到结果,所见即所得有时很有用。

9 代码调试

在正式开始编程前,你应该首先学会调试,这是我10年编码,7年工作的经验总结。以pycharm调试为例:
在想要调试行打上断点,点击调试图标,启动调试,等运行到此行,按F8逐行调试,按F7进入函数内部:视频大概在第4分钟:

10 第一个Python项目

这是一个很有意思的Python案例,根据生日预测你星座,把它们敲一遍,找找编码,做第一个Python项目的感觉。
使用pycharm新建一个项目,
首先点击:New Project
输入项目名称
接下来,最好要展开,新建一个Python虚拟环境,推荐选择conda,位置,Python版本,conda.exe默认即可,点击create,这样完成虚拟环境创建。
虚拟环境创建中
点击first_project0,右键选择 python文件,创建一个名为star0.py文件,恭喜你,完成创建你的第一个python模块
直接复制下面代码到这个模块里
右键点击 Run
完整过程见下面操作视频,大概在第4分20秒:
启动后,转到底部交互区域,输入你的生日,得到你的星座,可以试试女朋友的生日,查查她的星座,按下q退出应用程序,返回0代表程序运行无任何问题。
boundary_date = [
20
19
21
20
21
22
23
23
23
24
23
22
]

stars = [
'摩羯座'
'水瓶座'
'双鱼座'
'白羊座'
'金牛座'
,

'双子座'
'巨蟹座'
'狮子座'
'处女座'
'天秤座'
,

'天蝎座'
'射手座'
'摩羯座'
]



defget_star():
whileTrue
:

        birthday = input(
"请输入你的生日\n不包括年份(如01-01)\n输入q退出:"
)

if
 birthday == 
'q'
:

break
        md = birthday.split(
'-'
)

if
 len(md) != 
2
:

            print(
"输入格式有误,请重新输入"
)

continue

        month, day = md[
0
], md[
1
]

try
:

            month, day = int(month), int(day)

if
 (month < 
0or
 month > 
12or
 day < 
0
or
 (month 
in
 [
1
3
5
7
8
10
12
and
 day > 
31
)

or
 (month == 
2and
 day > 
28
)

or
 (month 
in
 [
4
6
9
11
and
 day > 
30
)):

                print(
"月和日取值范围有误"
)

continue
if
 int(day) < boundary_date[month - 
1
]:

                print(
'*'
 * 
10
 + 
'您的星座'
 + 
'*'
 * 
10
)

                print(
' '
 * 
10
 + stars[month - 
1
])

                print(
'*'
 * 
27
)

else
:

                print(
'*'
 * 
10
 + 
'您的星座'
 + 
'*'
 * 
10
)

                print(
' '
 * 
10
 + stars[month])

                print(
'*'
 * 
27
)

except
 Exception 
as
 e:

            print(
"输入格式有误,必须为数字"
)

continue


if
 __name__ == 
"__main__"
:

    get_star()

以上完整代码,可以作为第一个Python小案例,希望入门闯关Day2能够对你有用。
亲爱的《Python与算法社区》读者朋友们:
坚持技术分享非常不易,如果你看到这里,希望你能点赞或转发,你的每一次点赞或转发,都告诉我这次分享有价值。如果你还想继续看到这个系列视频,请点赞,这样我更能坚持做好这个系列。
继续阅读
阅读原文