Python学习笔记(二)基础语法


Posted in Python onJune 06, 2014

学习Python,基本语法不是特别难,有了C的基本知识,理解比较容易。本文的主要内容是Python基础语法,学完后,能熟练使用就好。(开发环境依然是Python2.7,简单使用)
一,基本知识
1,不需要预先定义数据类型(此说法值得商榷,姑且这么说吧),这是与其他语言的最大不同(如C,C++,C#,Delphi等)

 >>> x=12
 >>> y=13
 >>> z=x+y
 >>> print z
 25

注意:尽管变量不需要预先定义,但是要使用的时候,必须赋值,否则报错:

 >>> le
 Traceback (most recent call last):
   File "<pyshell#8>", line 1, in <module>
     le
 NameError: name 'le' is not defined

2,查看变量的类型函数type():

1 >>> type(x)
2 <type 'int'>

3,查看变量的内存地址函数id():

>>> x=12
>>> y=13
>>> z=x+y
>>> m=12
>>> print 'id(x)=',id(x)
id(x)= 30687684
>>> print 'id(m)=',id(m)
id(m)= 30687684
>>> print 'id(z)=',id(z)
id(z)= 30687528
>>> x=1.30
>>> print 'id(x)=',id(x)
id(x)= 43407128

从上述结果可以发现:变量的指向变,地址不变,换句话说,整数12的地址值始终不变,变化的是变量的指向(如x的地址变化);
4,输出函数print():

 >>> x='day'
 >>> y=13.4
 >>> print x,type(x)
 day <type 'str'>
 >>> print y,type(y)
 13.4 <type 'float'>

逗号运算符(,):可以实现连接字符串和数字型数据。

 >>> print 'x=',12
 x= 12

格式化控制符:%f浮点数;%s字符串;%d双精度浮点数(这和C的输出是一致的)。

 >>> x=12
 >>> y=13.0004
 >>> z='Python'
 >>> print "output %d %f %s"%(x,y,s)
 output 12 13.000400 Python

5,输入函数raw_input():

 >>> raw_input("input an int:")
 input an int:12
 '12'

注意:raw_input()输入的均是字符型。
6,查看帮助函数help():

>>> help(id)
Help on built-in function id in module __builtin__:id(...)
    id(object) -> integer
    Return the identity of an object. This is guaranteed to be unique among
    simultaneously existing objects. (Hint: it's the object's memory address.)

注意:Python的注释,#:仅支持单行注释;另外,Python编程具有严格的缩进格式。

二、函数
1,函数定义及其调用:

#define function:add (函数说明)
def add(x,y):  #函数头部,注意冒号,形参x,y
    z=x+y           #函数体
    return z        #返回值
#define main function
def main():
    a=12
    b=13
    c=add(a,b)   #函数调用,实参a,b
    print c
main()             #无参函数调用
print 'End1!'

注意:这部分与C的存在的异同在于:
1,形参与实参的用法,无参函数,有参函数,默认参数等规则一致。
如def add(x,y=2),调用可以是add(3)也可以是add(3,4),add(y=34,x)
2,C的形参需要指定数据类型,而Python不需要。
3,Python的返回值允许有多个。如:

def test(n1,n2):
    print n1,
    print n2
    n=n1+n2
    m=n1*n2
    p=n1-n2
    e=n1**n2
    return n,m,p,e
print 'Entry programme1'
sum,multi,plus,powl=test(2,10)   #这个是C语言所没有的赋值方式
print 'sum=',sum
print 'multi=',multi
print 'plus=',plus
print 'powl=',powl
re=test(2,10)
print re                                #数据类型为:'tuple'
print re[0],re[1],re[2],re[3]
print 'End1!\n'

运行结果:

Entry programme
2 10
sum= 12
multi= 20
plus= -8
powl= 1024
2 10
(12, 20, -8, 1024)
12 20 -8 1024
End!

2,局部变量:

def f1():
    x=12     #局部变量
    print x
def f2():
    y=13      #局部变量
    print y
def f3():
    print x       #错误:没有定义变量x,这与“不需要预先定义数据类型”不矛盾
    print y
def main():
    f1()
    f2()
    #f3()#变量报错  
main()
print 'End2!'

3,修改全局变量的值:

def modifyGlobal():
    global x              #全局变量定义
    print 'write x =-1'
    x=-1
def main():
# printLocalx()
# printLocaly()
# readGlobal()
    modifyGlobal()x=200
#y=100
print 'before modified global x=',
print x
main()
print 'after modified global x=',
print x

运行结果:

>>>
 before modified global x= 200
 write x =-1
 after modified global x= -1

三、表达式与分支语句
1,表达式:
      是由数字,运算符,数字分组符号括号,自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。表示通常有操作数和操作符两部分组成。
      分类:算术表达式;关系表达式,逻辑表达式(and/or/not)
2,if分支语句:
1)形式一:(if <condition>:)

 >>> sex="male"
 >>> if sex=='male':
  print 'Man!'
 #此处有两次回车键
 Man!
 >>>

2)形式二:(if <condition>: else (if <condition>:))

 sex=raw_input('Please input your sex:')
 if sex=='m' or sex=='male':
  print 'Man!'
 else:
     print 'Woman!'

运行结果:

 >>>
 Please input your sex:male
 Man!

3)形式三:(if <condition>: elif <condition>: else ))(这是Python有而C没有的形式)

count=int(raw_input('Please input your score:'))
if count>=90:
   print'优秀!'
elif count>=80:
    print '优良!'
elif count>=70:
    print '合格!'
elif count>=60:
    print '及格!'
else:
    print '不及格!'

运行结果:

 >>>
 Please input your score:90
 优秀!

注意:Python没有switch语句。

四、循环语句:
       背景:在程序设计的时候,经常会遇到一些语句被不断的重复执行,这样的代码极长又低效,很不直观,那么应该考虑用循环体来实现。
 1,while语句:与C在表达上有区别,c有while与do……while形式;Python下:while与while……else……形式
 1)while形式下:

 i=1
 while i<5:
     print 'Welcome you!'
     i=i+1

2)while……else……形式下:

 i=1
 while i<5:
     print 'Welcome you!'
     i=i+1
 else:
     print "While over!"  #循环正常结束

注意:如果while非正常状态结束(即不按循环条件结束),则else语句不执行。如下:

i=1
while i<5:
    print 'Welcome you!'
    i=i+1
    if i==2:
        print 'While……'
        break
else:
    print "While over!"

运行结果:

1 >>>
2 Welcome you!
3 While……

补充:
continue语句:在while循环体中出现时,本次循环continue之下的语句不被执行,直接进入下一次循环。

i=1
while i<=5:
    if i==2 or i==4:
        print 'While……continue'
        i=i+1
        continue
    print 'Welcome you!'
    i=i+1
else:
    print "While over!"

运行结果:

>>>
Welcome you!
While……continue
Welcome you!
While……continue
Welcome you!
While over!

五,小结:

      本文介绍了Python的变量,输入输出函数,表达式,基本语句(分支和循环)等知识的相关使用,通过练习,应该对Python有一个初步的认识。

Python 相关文章推荐
python list使用示例 list中找连续的数字
Jan 27 Python
python监控网卡流量并使用graphite绘图的示例
Apr 27 Python
Python中正则表达式详解
May 17 Python
Python中实现switch功能实例解析
Jan 11 Python
python实现人人自动回复、抢沙发功能
Jun 08 Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 Python
python实现从本地摄像头和网络摄像头截取图片功能
Jul 11 Python
python可视化篇之流式数据监控的实现
Aug 07 Python
Python 从subprocess运行的子进程中实时获取输出的例子
Aug 14 Python
Pyinstaller 打包exe教程及问题解决
Aug 16 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
Jan 19 Python
python常见的占位符总结及用法
Jul 02 Python
pycharm 使用心得(九)解决No Python interpreter selected的问题
Jun 06 #Python
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 #Python
pycharm 使用心得(七)一些实用功能介绍
Jun 06 #Python
pycharm 使用心得(六)进行简单的数据库管理
Jun 06 #Python
pycharm 使用心得(五)断点调试
Jun 06 #Python
pycharm 使用心得(四)显示行号
Jun 05 #Python
pycharm 使用心得(三)Hello world!
Jun 05 #Python
You might like
php生成curl命令行的方法
2015/12/14 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
php workerman定时任务的实现代码
2018/12/23 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
2019/05/28 PHP
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
火狐4、谷歌12不支持Jquery Validator的解决方法分享
2011/06/20 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
2012/06/27 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
javascript实现连续赋值
2015/08/10 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
2017/12/16 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
[55:25]VGJ.T vs Optic Supermajor小组赛D组 BO3 第三场 6.3
2018/06/04 DOTA
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
python使用rpc框架gRPC的方法
2018/08/24 Python
启动Atom并运行python文件的步骤
2018/11/09 Python
详解python中init方法和随机数方法
2019/03/13 Python
win10环境下配置vscode python开发环境的教程详解
2019/10/16 Python
python元组的概念知识点
2019/11/19 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
基于Python模拟浏览器发送http请求
2020/11/06 Python
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
品牌服务方案
2014/06/03 职场文书
晋江市人民政府党组群众路线教育实践活动整改方案
2014/10/25 职场文书
2014年信访维稳工作总结
2014/12/08 职场文书
八月迷情观后感
2015/06/11 职场文书
解决numpy数组互换两行及赋值的问题
2021/04/17 Python
JavaScript 防篡改对象的用法示例
2021/04/24 Javascript
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript
python代码实现扫码关注公众号登录的实战
2021/11/01 Python