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 除法小技巧
Sep 06 Python
pycharm 使用心得(四)显示行号
Jun 05 Python
Python3.x版本中新的字符串格式化方法
Apr 24 Python
Python 绘图和可视化详细介绍
Feb 11 Python
Python使用re模块实现信息筛选的方法
Apr 29 Python
Python处理中文标点符号大集合
May 14 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
python函数声明和调用定义及原理详解
Dec 02 Python
python 通过邮件控制实现远程控制电脑操作
Mar 16 Python
python 牛顿法实现逻辑回归(Logistic Regression)
Oct 15 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
Oct 30 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
Nov 24 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
Drupal7连接多个数据库及常见问题解决
2014/03/02 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
2014/07/25 PHP
Mootools 1.2 手风琴(Accordion)教程
2009/09/15 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
js带前后翻页的图片切换效果代码分享
2015/09/08 Javascript
javascript如何实现360度全景照片问题汇总
2016/04/04 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
2018/08/16 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
2020/02/11 Javascript
JavaScript链式调用原理与实现方法详解
2020/05/16 Javascript
Python中atexit模块的基本使用示例
2015/07/08 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
python、Matlab求定积分的实现
2019/11/20 Python
python实现将一维列表转换为多维列表(numpy+reshape)
2019/11/29 Python
python 识别登录验证码图片功能的实现代码(完整代码)
2020/07/03 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
浅析pandas随机排列与随机抽样
2021/01/22 Python
Python3压缩和解压缩实现代码
2021/03/01 Python
CSS3属性 line-clamp控制文本行数的使用
2020/03/19 HTML / CSS
HTML5 canvas标签实现刮刮卡效果
2015/04/24 HTML / CSS
销售行业个人求职自荐信
2013/09/25 职场文书
小学生开学感言
2014/02/28 职场文书
一年级学生评语
2014/04/23 职场文书
关爱残疾人标语
2014/06/25 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
查摆剖析材料范文
2014/09/30 职场文书
党员违纪检讨书怎么写
2014/11/01 职场文书
大三学生英语考试作弊检讨书
2015/01/01 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书
2015年调度员工作总结
2015/04/30 职场文书
图书馆义工感想
2015/08/07 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
python双向链表实例详解
2022/05/25 Python