Python基础语法篇(一) - Go语言中文社区

Python基础语法篇(一)


    今天咱们继续来聊聊Python的一些基础语法。

    我们先以Python之禅中的一段话做为开篇语:优美胜于丑陋;明了胜于晦涩;简洁胜于复杂。这其中贯穿了Python设计者的思维,那么传说中的Python之禅是哪里来的呢?打开命令行,输入python敲回车,进入解释器,然后输入

import this

可以看到如下内容,你可以自己试试哦

Beautiful is better than ugly.

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

Explicit is better than implicit.

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

Simple is better than complex.

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

Complex is better than complicated.

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

Flat is better than nested.

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

Sparse is better than dense.

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

Readability counts.

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

Special cases aren't special enough to break the rules.

Although practicality beats purity.

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

Errors should never pass silently.

Unless explicitly silenced.

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

In the face of ambiguity, refuse the temptation to guess.

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

There should be one-- and preferably only one --obvious way to do it.

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

Although that way may not be obvious at first unless you're Dutch.

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

Now is better than never.

Although never is often better than *right* now.

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

If the implementation is hard to explain, it's a bad idea.

If the implementation is easy to explain, it may be a good idea.

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

Namespaces are one honking great idea -- let's do more of those!

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

 

上面是Python之禅的所有内容,他为我们讲述了Python编程过程中应该遵循的原则,然而,作者是很调皮的,我们来看看这段import this是怎么实现的,我们打开Python的安装目录,本猿安装在C:Python36,然后进入C:Python36Lib,我们找到this.py,然后打开这个文件,我们来看看他的代码。

    好了,看到这段代码,其实本猿也看不懂,哈哈,这段代码完全没有遵从Python之禅,完全看不懂嘛,Python之禅的作者很皮的。

    上面了解了Python编程的原则以后,咱们来回归正题,Python的基础语法。

首先,我们来讲一下Python中的缩进原则,这个是初学者最容易碰到的问题。我们从一个栗子出发,打开命令行,输入python进入解释器,输出我们的Hello World!如下图所示:

    

新手经常碰到的一个异常就是:IndentationError:unexcepted indent。

什么原因呢?Python规定使用缩进(空格或tab键)来控制整个程序的结构,上面我们的第二个print函数输出"Hello World!"时,前面多了一个空格,和上面的一行没有对齐,所以引起了上面的错误。另外,程序中如果使用空格键进行对齐,所有的对齐都应该使用空格键,不能空格和Tab混用。通常情况下我们使用四个空格或一个Tab做为缩进的字符。这里说完可能还不直观,我们看个简单的例子,里面的内容看不懂没有关系,关键是需要知道什么是通过缩进控制的程序。

#-*-encoding=utf-8-*-

from random import randint

a = randint(1,100)  #从1到100取一个随机整数

if a > 80:

    b = a + 1 

    print("a>80,the value of b is ",b)

elif a <= 80 and a > 30:

    b = a + 2

    print("30<a<=80,the value of b is ",b)

else:

    b = a + 3 

    print("a<30,the value of b is ",b)

    从上面的例子我们可以看出,Python在写代码的时候需要堆得整整齐齐哦,否则就会报错,本质上是同一级代码需要对齐,上级代码和下级代码的关系靠空格或Tab键来控制。要想运行上面的程序,你可以复制上面的代码,新建一个文本文档,推荐使用notepad++),把内容粘贴进去,保存为test.py,通过命令行进入test.py所在的目录,执行python test.py即可。

    聊完了代码缩进下面我们再聊几个概念:函数,参数,变量,函数返回值。学过初中数学的童鞋应该熟悉函数的定义,举个简单的栗子:

y=3x+1

上面的式子中x是自变量,y是应变量,在程序猿的世界里,其实也离不了这个概念。我们把上面式子中的x叫做变量,3*x+1叫做函数,y叫做函数返回值。那么如何使用Python来实现上面的这个函数呢?我们先给出这个函数的实现,然后来慢慢解释。

def dosomething(x):

    y = 3 * x + 1

    return y

第一行的def dosomething的意思就是说我这里有一个名字叫做dosomething的函数,用编程术语来描述就是:声明了一个dosomething的函数,def就是“这是个函数的”意思,这是一个关键字,声明函数的时候必须要使用这个关键字。后面的括号里的x是这个函数的自变量,用编程术语来描述就是指“参数”。

我们来看第二行,第二行描述了函数要做的事情,就是把3*x + 1的计算结果保存在y这个应变量里面(这里的描述略有偏差,为了帮助理解先忽略这个问题)。

第三行return y就是指把y里保存的计算结果返回,return也是一个关键字,表示返回某个值。返回给谁呢?

我们继续来看,我们需要计算x=3的值,怎么做呢?在数学概念里,我们可以将

y =3*x +1 

写成

f(x) = 3*x  + 1

我们计算x=3的时候表达式如下:

f(3) = 3*3 + 1

在程序猿的世界里其实差别并不大,我们想计算x = 3的值只需要执行如下内容:

dosomething(3)

这个过程叫做函数的调用,所谓调用就是传一个真实的x的值给声明的dosomething,这个函数会根据具体的函数内容计算出应变量的值,也就是传说中的函数返回值。

从上面的例子中我们总结一下:自变量、应变量统称为变量,dosomething叫做函数名,x叫做函数的参数,y叫做函数的返回值。其中def是声明函数的关键字,return是返回函数值的关键字。

如何执行上面的代码呢?我们和前面演示缩进的那个程序是类似的。新建一个文本文档,粘贴如下内容:

def dosomething(x):

    y = 3 * x + 1

    return y

print(dosomething(3))

    上面我们拿数学中的例子来解释了函数等概念,但是这个定义是很狭窄的,为了便于理解我们可以先用数学概念类比。实际上,函数就是某个特定功能的实现,可以是上面我们说的一个一次函数的实现,也可能是返回了一个图片、或者一个文字,这些图片和文字就是函数体内处理后得到的结果,这里如果难理解的话我们先不要着急,在后面的教程里面会大量涉及这些概念,通过各种各样的例子,你会对这些概念的理解越来越深刻。

    好了,今天的教程就先到这里,如果不能理解就自己动手写点程序吧。

喜欢的话可以关注下我的公众号哦~

长按关注哦~

    

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/hui3909/article/details/82023659
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 21:12:59
  • 阅读 ( 1229 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢