下家山的博客

关注嵌入式,物联网及人工智能领域

python大道至简(第二部分)

作者:下家山(qq:1209050967,微信:xiajiashan)

回到 python大道至简(第一部分)

十二:python程序另一种运行方式

12.1 文件格式

  Linux命令cat的来历参考《Cat的来历.docx》

12.2 运行方式

 Python无需编译即可运行:

注意:必须加上下面这一行才可以执行,这一行的意思是给helloworld.py添加用户可执行权限。

12.3 更简化的运行方式

./表示在当前目录下

十三:我的第一个程序,求圆的面积

问题描述:

给出半径,求圆的面积。

这个问题怎么用python程序实现呢?

 

  变量的打印,必须通过print实现

 

十四:两种编程方法的比较

 

第一种

优点:可以在任何地方,用文本写代码,无需终端,编写方便

缺点,需要切换到python终端才可以运行

第二种

优点:可以即时查看代码结果,甚至所见即所得

 

缺点:必须在python终端下编写,比较局限

但有时候要写大量代码的时候,上述优点却变成了一种缺点

     

     

后续代码,如无特殊情况,将采用第一种编写方式,采用这种方式有更多的优点呈现

十五:获取用户从键盘输入的内容

问题描述:

在我的第一个程序(第十三节中),求圆的面积,我们程序中的半径是定死的

那有没有什么办法,可以实现,半径让用户输入,只要用户输入了半径,程序马上返回圆的面积呢?

Python当然可以,那就是从键盘获取用户输入。

  Input功能解析

十六:让我们的程序支持中文

 在上面的程序中,全是英文,特别是提示语句也是英文,让一天到晚跟中文打交道的程序员,看起来好像不够亲近。

如何实现中文显示呢?

比如这样:

但是,当我们执行的时候,发现出错


百度的解决方案

改过之后的结果

再百度….

什么是utf-8,什么是gbk请参考

http://blog.csdn.net/zzxian/article/details/7330804

十七如何input获取多个值

注意:用户输入一定要以逗号隔开(,),否则出现下列现象。

 

十八:再议print——格式化输出

如果要在输出结果前面有个提示语句怎么办

18.1 十进制数值输出

输出多个变量

%d表示十进制输出,%S表示要输出的变量,他们中间不能有逗号(,)

进一步的说明见20.1.120.1.2

18.2 字符输出

          

  68以16进制输出(%x)是什么?

68以8进制输出(%o)是什么?

68以2进制输出(%b)是什么?

68以字符输出(%c)是什么?

 

 

 

十九:判断语句

19.1 求三角形的面积

问题描述:

       给出三角形的三条边,求其面积。

提示:

       

        Python的开根号函数sqrt。

        你需要判断三角形三边的关系,a+b>c,即任意两边之和大于第三边。

19.2在命令下实验结果:

19.3 Python程序实现如下:

 

19.4 怎么加入三角形三条边的非法判断

不合法的判断:

程序改过后

 

19.5 python条件语句总结

Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。

可以通过下图来简单了解条件语句的执行过程:

Python程序语言指定任何非0和非空(null)值为true0 或者 nullfalse

Python 编程中 if 语句用于控制程序的执行,基本形式为:

if判断条件:

    执行语句……

else

    执行语句……

 

 

 

二十:循环语句

20.1 while语句

问题描述:

       求5!。

提示:

       求5的阶乘,即5*4*3*2*1

  我总觉得不直观,我想最后打印的是形如:5= 5*4*3*2*1 = 120

20.1.1 print如何去掉自动换行

  怎么去掉换行?

   去掉了换行,但是,中间夹有空格,怎么去掉空格?

20.1.2 print如何去掉空格

 

个人练习:怎么实现从键盘输入一个数(需要判断大于0),计算它的阶乘。

20.2 for语句

问题描述:

       写程序把字符串’I love python’以单个字符的形式打印出来。

效果如下:

     

  其中,第4行的i表示循环变量,for,in,后面的冒号都是固定格式,而’I love python’是字符串。

   第5行的print  i,逗号表示不换行,并且循环变量i会自动累加。

   个人练习:如何实现延时效果

20.2.1 for循环格式

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

语法:

for循环的语法格式如下:

 

 

for i in sequence:

  statements(s)

流程图:

 

20.3 range函数

          Range函数经常与循环语句配合使用。

问题描述:

     我们要实现1+2+3+4+5+。。。+100的和,怎么用python代码实现?

提示:

     我们知道1+2+3+4+5+。。。+100=5050

 

 Rangen,m)函数不包括右边界。所以,没有加100

 4950+100=5050.

 4行,s=0,如果没有,编译会报错,指明第6s未定义。【变量在使用前必须定义】

 个人试试去掉第4行

20.3.1 range函数注意事项

 

20.4 enumerate函数

     For语句实现两个循环变量

 

列表在后面会详细讲解。

个人练习:打印1-9三角形阵列:

 

 

二十一:循环嵌套

Python 语言允许在一个循环体里面嵌入另一个循环。

Python for 循环嵌套语法:

foriterating_varinsequence:

foriterating_varinsequence:

statements(s)

statements(s)

Python while 循环嵌套语法:

whileexpression:

whileexpression:

statement(s)

statement(s)

你可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环,反之,你可以在for循环中嵌入while循环。

21.1 for循环嵌套

问题描述:

         我们需要在屏幕上打印一个4行5列的阵列*号图

怎么做呢?

         所以,要采用双循环,我们先采用for来做

   print后加入逗号去掉自动换行功能!

21.2 while循环

二十二:循环控制语句

循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:

控制语句

描述

break 语句

在语句块执行过程中终止循环,并且跳出整个循环

continue 语句

在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。

pass 语句

pass是空语句,是为了保持程序结构的完整性。

22.1 break语句

Python break语句,就像在C语言中,打破了最小封闭forwhile循环。

break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。

break语句用在whilefor循环中。

如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。

Python语言 break 语句语法:

break

流程图:


问题描述:

 我们回顾一下20.2.1节的这个程序,现在要实现的是,让程序碰到字母y的时候跳出循环,该怎么做呢?

解决方法:

 注意:第6条语句属于if的语句块,而第7条语句属于for的语句块!

 采用while实现的结果

 

22.2 continue语句

Python continue 语句跳出本次循环,而break跳出整个循环。

continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。

continue语句用在whilefor循环中。

Python 语言 continue 语句语法格式如下:

continue

流程图:

 Continue   for语句实例

 

Continue while语句实例

为什么把第9行语句,放到第6行上面就可以实现了呢?

因为,当i碰到11的时候就不执行第8,第9条语句了,造成i一直等于11。

那问题又来了,既然i一直等于11,但11前面的值应该打印出来啊?这又是为什么呢?

这个原因是行缓冲的造成的。

 

22.3 flush函数

   Flush函数,需要导出sys才可以使用,他的功能是刷新内存缓冲区到输出设备。

22.4 pass语句

Python pass是空语句,是为了保持程序结构的完整性。

pass 不做任何事情,一般用做占位语句。

Python 语言 pass 语句语法格式如下:

pass

什么是占位语句?

 

我们来看一个实例

 

如果不用pass占位会出现什么情况呢?

  Python把第9行当成了if的控制块,而第9行本来是跟第6行并列作为for语句的控制块的,但是因为我们把第78行屏蔽了,所以系统把第9行当成了if的执行语句,但是因为第9行没有缩进,所以造成缩进错误。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

二十三:关于缩进

23.1 缩进的思考

 

  参考20.1.2

  为什么第一条print语句(第11行)参与while循环,打印多次。而,第二条print语句(第15行)不参与循环只打印一次?

  难道是第14行空行的原因?

   去掉空行后,没有影响!

   难道是缩进的原因?

 

 个人自行实验:缩进1个空格,或3个,4个空格试试

 

Python的缩进规则参考下面链接

http://www.cnblogs.com/tt-0411/archive/2011/11/11/2245693.html

23.2 缩进的各种情况

代码

运行结果

S=0,为假,所以打印#############

 

如果不缩进:

如果缩进一个空格:

缩进23456789个空格都可以。

 

 缩进空格不一致也可以,但是不能有不缩进的情况。

 

 

风格一样也可以,一个空格,另一个tab

 

 

23.3语句块

   其中,语句块可以是一条语句,也可以是多条语句。

   问题是:如何控制if语句的语句块包含几条执行语句?

  因为6,7都有缩进是If下面的两条执行语句,所以属于if的控制范围;

因为9,10是else下面的两条执行语句,所以属于else的控制范围;

23.4 语句块的控制

         那么第8行缩进一个空格是否可以呢?

 

在同一个语句块里面,缩进空格个数要一致!

 

在同一个语句块里面,缩进风格要一致。

 

  不同语句块,缩进空格个数内部要一致。

  If语句块统一空2个空格,else语句块统一tab缩进也OK

 

  10条语句以不缩进类脱离else语句块的控制!

 

 

23.5 总结

     类似If,for,while的语句块缩进规则:

1:一定要有缩进

2:在语句块内一定要统一,不能一个执行语句缩进1个空格,另一个执行语句缩进2个空格;

3:在语句块内风格也必须一致,不能一条语句空格缩进,另一条语句tab缩进

4:最后的独立语句不能缩进

python大道至简(第三部分)

阅读更多
版权声明: https://blog.csdn.net/qq_27320195/article/details/79968474
个人分类: pyhton
上一篇Python大道至简(第一部分)
下一篇CSDN-markdown编辑器
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭