本文介绍下python的基本语法

一、变量定义

不需要说明类型,也不需要像js等脚本语言使用var等标识符。直接声明即可,如:

num=1

说明:上面语句声明了一个变量num,并在声明时初始化值为 1

二、常量

同其它语言类似。注意字符串常量既可以用单引号,也可以用双引号扩起。

注意None是python中的一个内置常量,代表什么也没有,可以给一个变量赋值为None,表示该变量什么值也没有。

三、布尔值

在python中,下面的值作为布尔表达式时,都会被解释成假(false):

True ,  None , 0 , ""  , '' , ()  , [] , {}

其它值都会被解释成真。

注意 : 常量布尔值 是 True(真) 和False(假),是区分大小写的,第一个字母大小。

a =false  会把false当作一个变量,如果false没定义会报语法错误。

举例:

>>> if 'hello':
... print True
... else:
... print False
...
True
>>> if '':
... print True
... else:
... print False
...
False
>>> if 1:
... print True
... else:
... print False
...
True

四、字符串

1、字符串连接用  + 号

2、长字符串,如果一个字符串很长,需要多行,可以用 三个单引号括起来,如:

举例,在交互式下的输入

>>> str='''hello,
... i am jame,
... where are you?'''
>>> print str
hello,
i am jame,
where are you?
>>>

在脚本文件中

xxx@ubuntu:~$ more test.py
x='''hello,
i am jame,
where are you?'''
print x
xxx@ubuntu:~$ python test.py
hello,
i am jame,
where are you?
xqh@ubuntu:~$

在python中,不能直接将字符串与数字通过 + 连接,python不会自动将数字转字符串,会报错。在python中,字符串和数字的相互转换方式是:

string-->int

1)、10进制string转化为int

  int('12')

2)、16进制string转化为int

  int('12', 16)

int-->string

1)、int转化为10进制string

  str(18)

2)、int转化为16进制string

  hex(18)

五、运算符

1、布尔运算符

与java,js等语言不同。python中的 与,或,非 运算符不是 && , || 和 !,而是用单词 and , or 和 not表示,如:

>>> a=False
>>> not a
True
>>> a and True
False
>>> a or True
True

六、输入和输出

利用 print方法可以将信息输出到屏幕上。

利用 raw_input() 可以从屏蔽输入信息,如:

>>> msg="hello,"
>>> msg+=raw_input("please input your name:")
please input your name:tom
>>> print msg
hello,tom
>>>

注意,与 input()方法的区别,input方法会假设用户输入的是合法的python表达式,而不会把它当作字符串。
如上面的例子,如果用的是 input,则输入时一定要输入 "tom", 要带双引号,否则就会把tom当作变量处理,而如果没定义,则会报语法错误。

这里举个例子:

>>> print input("please input:")
please input:3+5
8
>>> print input("please input:")
please input:23+16*15
263
>>> print raw_input("please input:")
please input:23+16*15
23+16*15
>>>

通过上面例子,可以很清晰的看出 input 和raw_input方法的区别了。

七、函数定义

通过def关键字定义函数,举例如下:

>>> def hello():
... print "hello"
...
>>> hello()
hello
>>> def showMsg(msg):
... print msg
...
>>> showMsg("good")
good
>>> def minus(a,b):
... return a-b
...
>>> result = minus(10,5)
>>> print result
5

函数可以有返回值,也么可以没有,返回值通过return关键字指定,这和其它语言一致。

上面的例子中两个函数showMsg和plus带了参数,采用这种定义方式,要求调用函数时,参数传递的顺序和定义一致。如

minus(10,5 )  和 minus(5,10) 结果完全不一样。

除了这种方式外,在python中,还可以提供参数的名字传递参数值,这样不需要按照定义时的顺序来,避免出错,举例如下:

>>> def calSecond(hour,minute,second):
... return hour*60*60+minute*60+second
...
>>> print calSecond(1,0,10)
3610
>>> print calSecond(hour=1,second=10,minute=0)
3610

上面代码定义了calSecond函数,先是没有指定参数名调用(要求顺序和参数定义一致),后者指定参数名调用(这对顺序没要求,但要求名字一致),两者结果是一样的。
定义函数时,也可以给参数指定默认值,这样调用函数时,如果对有默认值的参数不传入值时,则使用默认值。

>>> def show(name,color="red"):
... print name+" is " + color
...
>>> show("apple")
apple is red
>>> show("banana","yello")
banana is yello

说明:如果函数定义时参数没有指定默认值,调用时必须要传入值,否则会报语法错误。这和js等脚本语言不同。

变参定义,同其它语言一样,python也提供了变参的功能(即传入的参数个数不变),举例如下:

>>> def test(name,*paras):
... print name
... for para in paras:
... print para
...
>>> test("hello",10,100,1000)
hello
10
100
1000
>>> test("hello","a","b")
hello
a
b

通过*可以标记一个参数为变参,这时调用时可传入任意数目(包括0)的值,实际在函数体内,获得的该参数是一个元组。
关于元组的概念后续文章再介绍,上面for语句是遍历元组中的元素,这里获得的就是传入的各个参数值。

很显然,一个函数只能有一个变参,且必须位于最后一个参数。

Python 2.7 学习笔记 基本语法和函数定义的更多相关文章

  1. Python快速入门学习笔记(三)——函数的定义与调用

    定义函数 Python中定义函数的格式为: def fun([参数列表]): ... 函数在执行到return语句时结束,并将结果返回.如果没有return语句,函数执行完毕后返回None. 例: d ...

  2. Python Built-in Function 学习笔记

    Python Built-in Function 学习笔记 1. 匿名函数 1.1 什么是匿名函数 python允许使用lambda来创建一个匿名函数,匿名是因为他不需要以标准的方式来声明,比如def ...

  3. Requests:Python HTTP Module学习笔记(一)(转)

    Requests:Python HTTP Module学习笔记(一) 在学习用python写爬虫的时候用到了Requests这个Http网络库,这个库简单好用并且功能强大,完全可以代替python的标 ...

  4. python网络爬虫学习笔记

    python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...

  5. Python基础知识总结笔记(四)函数

    Python基础知识总结笔记(四)函数python中的函数函数中的参数变量作用域偏函数PFA递归函数高阶函数BIFs中的高阶函数匿名函数lambda闭包Closure装饰器Decorator函数式编程 ...

  6. Hadoop源码学习笔记(2) ——进入main函数打印包信息

    Hadoop源码学习笔记(2) ——进入main函数打印包信息 找到了main函数,也建立了快速启动的方法,然后我们就进去看一看. 进入NameNode和DataNode的主函数后,发现形式差不多: ...

  7. Python学习笔记——基础语法篇

    一.Python初识(IDE环境及基本语法,Spyder快捷方式) Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,没有编译过程,可移植,可嵌入,可扩展. IDE 1.检查Pyth ...

  8. Python学习笔记014——迭代工具函数 内置函数enumerate()

    1 描述 enumerate() 函数用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中. 2 语法 enumerate(sequ ...

  9. Python(Head First)学习笔记:四

    4 持久存储:文件存储.读写 数据保存到文件:在学习的过程中出现了一个问题,老是报一个错:SyntaxError: invalid syntax: 这个是语法错误,后来搜了下才知道是python2.7 ...

随机推荐

  1. 读书笔记: 深入浅出node.js

    >> 深入浅出node.js node.js是c++编写的js运行环境 浏览器: 渲染引擎 + js引擎 后端的js运行环境 node.js用google v8引擎,同时提供很多系统级的A ...

  2. JAVA GUI学习 - JSplitPane分屏组件学习

    public class JSplitPaneKnow extends JFrame { JSplitPane jSplitPane; JPanel jPanelRed; JPanel jPanelB ...

  3. java学习之坦克大战游戏

    总结:由于这几天快过年比较忙然后没怎么写,写代码途中一些经验总结现在给忘记了.这次的小项目感觉比上次写的思路清楚了点.没有之前第一次写那么逻辑混乱,结构也搞的比之前的要好,添加功能比较容易.学习了之前 ...

  4. Maven模块聚合与继承

    聚合 假如有account-email和account-persist两个模块,我们想要一次构建这两个项目,这时须要用到聚合. 聚合模块 package值必须为pom 必须有元素modules mod ...

  5. Maven导入时,Cannot change version of project facet Dynamic Web Module to 3.0.

    今天手贱,在eclipse里面把项目删掉了,重新maven导入时,报出Cannot change version of project facet Dynamic Web Module to 3.0. ...

  6. oc拨打电话方法

    1,这种方法,拨打完电话回不到原来的应用,会停留在通讯录里,而且是直接拨打,不弹出提示NSMutableString * str=[[NSMutableString alloc] initWithFo ...

  7. Binary Tree Preorder Traversal and Binary Tree Postorder Traversal

    Binary Tree Preorder Traversal Given a binary tree, return the preorder traversal of its nodes' valu ...

  8. django cbv

    django 提供了一系列现成的类视图,他们都继承自一个 View 基类(django.views.generic.base.View).在这个基类里实现了与 URLs 的接口(as_view).请求 ...

  9. Qt探秘——谈ui文件的用法

    转载自:点击打开链接http://blog.csdn.net/luo_isaiah/article/details/5794973 相信用过Qt Designer的朋友,对Qt Project中的.u ...

  10. mybatis用logback日志不显示sql的解决办法

    mybatis用logback日志不显示sql的解决方法 1.mybatis-config.xml的设定 关于logimpl的设定值还不支持logback,如果用SLF4J是不好用的. 这是官方文档的 ...