Linux命令cat的来历参考《Cat的来历.docx》
Python无需编译即可运行:
注意:必须加上下面这一行才可以执行,这一行的意思是给helloworld.py添加用户可执行权限。
./表示在当前目录下
问题描述:
给出半径,求圆的面积。
这个问题怎么用python程序实现呢?
变量的打印,必须通过print实现
第一种
优点:可以在任何地方,用文本写代码,无需终端,编写方便
缺点,需要切换到python终端才可以运行
第二种
优点:可以即时查看代码结果,甚至所见即所得
缺点:必须在python终端下编写,比较局限
但有时候要写大量代码的时候,上述优点却变成了一种缺点
后续代码,如无特殊情况,将采用第一种编写方式,采用这种方式有更多的优点呈现!
问题描述:
在我的第一个程序(第十三节中),求圆的面积,我们程序中的半径是定死的
那有没有什么办法,可以实现,半径让用户输入,只要用户输入了半径,程序马上返回圆的面积呢?
Python当然可以,那就是从键盘获取用户输入。
Input功能解析
在上面的程序中,全是英文,特别是提示语句也是英文,让一天到晚跟中文打交道的程序员,看起来好像不够亲近。
如何实现中文显示呢?
比如这样:
但是,当我们执行的时候,发现出错
百度的解决方案
改过之后的结果
再百度….
什么是utf-8,什么是gbk请参考
http://blog.csdn.net/zzxian/article/details/7330804
注意:用户输入一定要以逗号隔开(,),否则出现下列现象。
如果要在输出结果前面有个提示语句怎么办
输出多个变量
%d表示十进制输出,%S表示要输出的变量,他们中间不能有逗号(,)。
进一步的说明见20.1.1和20.1.2
68以16进制输出(%x)是什么?
68以8进制输出(%o)是什么?
68以2进制输出(%b)是什么?
68以字符输出(%c)是什么?
问题描述:
给出三角形的三条边,求其面积。
提示:
Python的开根号函数sqrt。
你需要判断三角形三边的关系,a+b>c,即任意两边之和大于第三边。
不合法的判断:
程序改过后
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
可以通过下图来简单了解条件语句的执行过程:
Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。
Python 编程中 if 语句用于控制程序的执行,基本形式为:
if判断条件:
执行语句……
else:
执行语句……
问题描述:
求5!。
提示:
求5的阶乘,即5*4*3*2*1
我总觉得不直观,我想最后打印的是形如:5!= 5*4*3*2*1 = 120
怎么去掉换行?
去掉了换行,但是,中间夹有空格,怎么去掉空格?
个人练习:怎么实现从键盘输入一个数(需要判断大于0),计算它的阶乘。
问题描述:
写程序把字符串’I love python’以单个字符的形式打印出来。
效果如下:
其中,第4行的i表示循环变量,for,in,后面的冒号都是固定格式,而’I love python’是字符串。
第5行的print i,逗号表示不换行,并且循环变量i会自动累加。
个人练习:如何实现延时效果
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
语法:
for循环的语法格式如下:
for i in sequence:
statements(s)
流程图:
Range函数经常与循环语句配合使用。
问题描述:
我们要实现1+2+3+4+5+。。。+100的和,怎么用python代码实现?
提示:
我们知道1+2+3+4+5+。。。+100=5050
Range(n,m)函数不包括右边界。所以,没有加100。
4950+100=5050.
第4行,s=0,如果没有,编译会报错,指明第6行s未定义。【变量在使用前必须定义】
个人试试去掉第4行
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循环。
问题描述:
我们需要在屏幕上打印一个4行5列的阵列*号图
怎么做呢?
所以,要采用双循环,我们先采用for来做
在print后加入逗号去掉自动换行功能!
循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:
控制语句 |
描述 |
break 语句 |
在语句块执行过程中终止循环,并且跳出整个循环 |
continue 语句 |
在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。 |
pass 语句 |
pass是空语句,是为了保持程序结构的完整性。 |
Python break语句,就像在C语言中,打破了最小封闭for或while循环。
break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
break语句用在while和for循环中。
如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。
Python语言 break 语句语法:
break
流程图:
问题描述:
我们回顾一下20.2.1节的这个程序,现在要实现的是,让程序碰到字母y的时候跳出循环,该怎么做呢?
解决方法:
注意:第6条语句属于if的语句块,而第7条语句属于for的语句块!
采用while实现的结果
Python continue 语句跳出本次循环,而break跳出整个循环。
continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
continue语句用在while和for循环中。
Python 语言 continue 语句语法格式如下:
continue
流程图:
Continue for语句实例
Continue while语句实例
为什么把第9行语句,放到第6行上面就可以实现了呢?
因为,当i碰到11的时候就不执行第8,第9条语句了,造成i一直等于11。
那问题又来了,既然i一直等于11,但11前面的值应该打印出来啊?这又是为什么呢?
这个原因是行缓冲的造成的。
Flush函数,需要导出sys才可以使用,他的功能是刷新内存缓冲区到输出设备。
Python pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句。
Python 语言 pass 语句语法格式如下:
pass
什么是占位语句?
我们来看一个实例
如果不用pass占位会出现什么情况呢?
Python把第9行当成了if的控制块,而第9行本来是跟第6行并列作为for语句的控制块的,但是因为我们把第7,8行屏蔽了,所以系统把第9行当成了if的执行语句,但是因为第9行没有缩进,所以造成缩进错误。
参考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
代码
运行结果
S=0,为假,所以打印#############
如果不缩进:
如果缩进一个空格:
缩进2,3,4,5,6,7,8,9个空格都可以。
缩进空格不一致也可以,但是不能有不缩进的情况。
风格一样也可以,一个空格,另一个tab。
其中,语句块可以是一条语句,也可以是多条语句。
问题是:如何控制if语句的语句块包含几条执行语句?
因为6,7都有缩进是If下面的两条执行语句,所以属于if的控制范围;
因为9,10是else下面的两条执行语句,所以属于else的控制范围;
那么第8行缩进一个空格是否可以呢?
在同一个语句块里面,缩进空格个数要一致!
在同一个语句块里面,缩进风格要一致。
不同语句块,缩进空格个数内部要一致。
If语句块统一空2个空格,else语句块统一tab缩进也OK
第10条语句以不缩进类脱离else语句块的控制!
类似If,for,while的语句块缩进规则:
1:一定要有缩进
2:在语句块内一定要统一,不能一个执行语句缩进1个空格,另一个执行语句缩进2个空格;
3:在语句块内风格也必须一致,不能一条语句空格缩进,另一条语句tab缩进
4:最后的独立语句不能缩进
python大道至简(第三部分)