Python学习系列(二)(基础知识)

Python基础语法

Python学习系列(一)(基础入门)

对于任何一门语言的学习,学语法是最枯燥无味的,但又不得不学,基础概念较繁琐,本文将不多涉及概念解释,用例子进行相关解析,适当与C语言对比,避免陷入语法的苦海。我认为初学者学习语法的目标是学会使用即可,关于对概念的深入理解,剖析,没有一定的知识积累是很难做到的。

学习Python,基本语法不是特别难,有了C的基本知识,理解比较容易。本文的主要内容是Python基础语法,学完后,能熟练使用就好。(开发环境依然是Python2.7,简单使用)

一,基本知识

1,不需要预先定义数据类型(此说法值得商榷,姑且这么说吧),这是与其他语言的最大不同(如C,C++,C#,Delphi等)


1 >>> x=12
2 >>> y=13
3 >>> z=x+y
4 >>> print z
5 25

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


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

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


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

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


 1 >>> x=12
2 >>> y=13
3 >>> z=x+y
4 >>> m=12
5 >>> print ‘id(x)=‘,id(x)
6 id(x)= 30687684
7 >>> print ‘id(m)=‘,id(m)
8 id(m)= 30687684
9 >>> print ‘id(z)=‘,id(z)
10 id(z)= 30687528
11 >>> x=1.30
12 >>> print ‘id(x)=‘,id(x)
13 id(x)= 43407128

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

4,输出函数print():


1 >>> x=‘day‘
2 >>> y=13.4
3 >>> print x,type(x)
4 day <type ‘str‘>
5 >>> print y,type(y)
6 13.4 <type ‘float‘>

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


1 >>> print ‘x=‘,12
2 x= 12

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


1 >>> x=12
2 >>> y=13.0004
3 >>> z=‘Python‘
4 >>> print "output %d %f %s"%(x,y,s)
5 output 12 13.000400 Python

5,输入函数raw_input():


1 >>> raw_input("input an int:")
2 input an int:12
3 ‘12‘

注意:raw_input()输入的均是字符型。

6,查看帮助函数help():


1 >>> help(id)
2 Help on built-in function id in module __builtin__:
3
4 id(...)
5 id(object) -> integer
6
7 Return the identity of an object. This is guaranteed to be unique among
8 simultaneously existing objects. (Hint: it‘s the object‘s memory address.)
9

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

二、函数

1,函数定义及其调用:


 1 #define function:add (函数说明)
2 def add(x,y): #函数头部,注意冒号,形参x,y
3 z=x+y #函数体
4 return z #返回值
5 #define main function
6 def main():
7 a=12
8 b=13
9 c=add(a,b) #函数调用,实参a,b
10 print c
11 main() #无参函数调用
12 print ‘End1!‘

注意:这部分与C的存在的异同在于:

1,形参与实参的用法,无参函数,有参函数,默认参数等规则一致。

如def
add(x,y=2),调用可以是add(3)也可以是add(3,4),add(y=34,x)

2,C的形参需要指定数据类型,而Python不需要。

3,Python的返回值允许有多个。如:


 1 def test(n1,n2):
2 print n1,
3 print n2
4 n=n1+n2
5 m=n1*n2
6 p=n1-n2
7 e=n1**n2
8 return n,m,p,e
9 print ‘Entry programme1‘
10 sum,multi,plus,powl=test(2,10) #这个是C语言所没有的赋值方式
11 print ‘sum=‘,sum
12 print ‘multi=‘,multi
13 print ‘plus=‘,plus
14 print ‘powl=‘,powl
15 re=test(2,10)
16 print re #数据类型为:‘tuple‘
17 print re[0],re[1],re[2],re[3]
18 print ‘End1!\n‘

运行结果:


 1 Entry programme
2 2 10
3 sum= 12
4 multi= 20
5 plus= -8
6 powl= 1024
7 2 10
8 (12, 20, -8, 1024)
9 12 20 -8 1024
10 End!

2,局部变量:


 1 def f1():
2 x=12 #局部变量
3 print x
4 def f2():
5 y=13 #局部变量
6 print y
7 def f3():
8 print x #错误:没有定义变量x,这与“不需要预先定义数据类型”不矛盾
9 print y
10 def main():
11 f1()
12 f2()
13 #f3()#变量报错
14 main()
15 print ‘End2!‘

3,修改全局变量的值:


 1 def modifyGlobal():
2 global x #全局变量定义
3 print ‘write x =-1‘
4 x=-1
5 def main():
6 # printLocalx()
7 # printLocaly()
8 # readGlobal()
9 modifyGlobal()
10
11 x=200
12 #y=100
13 print ‘before modified global x=‘,
14 print x
15 main()
16 print ‘after modified global x=‘,
17 print x

运行结果:


1 >>>
2 before modified global x= 200
3 write x =-1
4 after modified global x= -1

三、表达式与分支语句

1,表达式:

是由数字,运算符,数字分组符号括号,自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。表示通常有操作数和操作符两部分组成。

分类:算术表达式;关系表达式,逻辑表达式(and/or/not)

2,if分支语句:

1)形式一:(if <condition>:)


1 >>> sex="male"
2 >>> if sex==‘male‘:
3 print ‘Man!‘
4 #此处有两次回车键
5 Man!
6 >>>

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


1 sex=raw_input(‘Please input your sex:‘)
2 if sex==‘m‘ or sex==‘male‘:
3 print ‘Man!‘
4 else:
5 print ‘Woman!‘

运行结果:


1 >>>
2 Please input your sex:male
3 Man!

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


 1 count=int(raw_input(‘Please input your score:‘))
2 if count>=90:
3 print‘优秀!‘
4 elif count>=80:
5 print ‘优良!‘
6 elif count>=70:
7 print ‘合格!‘
8 elif count>=60:
9 print ‘及格!‘
10 else:
11 print ‘不及格!‘

运行结果:


1 >>>
2 Please input your score:90
3 优秀!

注意:Python没有switch语句。

四、循环语句:

背景:在程序设计的时候,经常会遇到一些语句被不断的重复执行,这样的代码极长又低效,很不直观,那么应该考虑用循环体来实现。

1,while语句:与C在表达上有区别,c有while与do……while形式;Python下:while与while……else……形式

1)while形式下:


1 i=1
2 while i<5:
3 print ‘Welcome you!‘
4 i=i+1

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


1 i=1
2 while i<5:
3 print ‘Welcome you!‘
4 i=i+1
5 else:
6 print "While over!" #循环正常结束

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


1 i=1
2 while i<5:
3 print ‘Welcome you!‘
4 i=i+1
5 if i==2:
6 print ‘While……‘
7 break
8 else:
9 print "While over!"

运行结果:


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

补充:

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


 1 i=1
2 while i<=5:
3 if i==2 or i==4:
4 print ‘While……continue‘
5 i=i+1
6 continue
7 print ‘Welcome you!‘
8 i=i+1
9 else:
10 print "While over!"

运行结果:


1 >>>
2 Welcome you!
3 While……continue
4 Welcome you!
5 While……continue
6 Welcome you!
7 While over!

2,for语句:(见后续文章)

五,小结:

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

时间: 2024-10-19 12:46:36

Python学习系列(二)(基础知识)的相关文章

MVC3+EF4.1学习系列(二)-------基础的增删改查和持久对象的生命周期变化

上篇文章中 我们已经创建了EF4.1基于code first的例子  有了数据库 并初始化了一些数据  今天这里写基础的增删改查和持久对象的生命周期变化 学习下原文先把运行好的原图贴来上~~ 一.创建详细页 首先 我们先在控制器下 添加详细页的方法 因为这篇文章后面要介绍持久对象声明周期的变化 所以在这里先看下有哪些状态 EF里一共有这五中生命状态类型 其实 看名字我们可以大概猜测出个一二三来~~  游离的 未改变的  新添加的  已删除的 修改的  但是是怎么变化的能 我们在后面的代码中实践与

指针学习系列一 基础知识

本系列文记录我对指针的理解,从新手入门级写起,文字代码全手写,大神们发现错误请给我留言,谢谢!欢迎进一步讨论可以联系邮件[email protected] -1- 基础知识 → 1指针是一种变量类型,int*和int一样,指针指向变量a是指指针的内容是变量a的地址. 例1 对比普通数据类型 int a=1; //内存腾出一块4k的空间,首地址给a(设120),a=1则将1填进这块内存 int* b=&a; //内存腾出一块空间,依据指针所占内存和机子有关,首地址给b(设250),b=&a则

(一)Python 学习第一天--基础知识,列表

1. .pyc文件 .pyc文件:在python3中,当模块运行时会自动生成在_pycache_文件夹中,其中c为compiled的缩写. Python是一门现编译后解释的语言,在运行时首先寻找.pyc文件,若没有先到内存先编译再解释,生成.pyc文件.如果源文件发生改动,则先对比对应的.pyc文件与源文件的时间戳. 2.数据类型 在Python2中当值大于2^64位时,为long型:Python3不存在long型,所有都为int型. 3.三元运算符 result = 值1  if   条件  

python 学习笔记之基础知识(1)

1.数据类型: a.整型 int() 像一些正整数什么的   1 2 43  4 这些 >>> 1/20 表示整除 b.浮点型 float 类似带标点的小数,0.1 0.5 1.6 >>> 1.0/20.5 浮点型可以计算精确值,算法中只要有一个数是浮点型,则结果也为浮点型 关于整除 “//”,这个即使是用浮点型也会被整除,如下 >>> 1.0//20.0 c.长整型 >>> 10000000000000000000000010000

python 学习笔记之基础知识(2)

1.输入输出: 输出:print,如下 >>> print 'Hello World'Hello World 输入:input(),row_input() 推荐使用row_input(),input()会默认你输入的数据类型是对的,导致一些错误,除非特别需要,尽量用row_input >>> name = raw_input("what is you name ?")what is you name ?sola>>> print n

PHP学习笔记(二)--基础知识之变量

原文地址:http://blog.51cto.com/dezhou/2061457

Python学习系列(一)(基础入门)

Python入门 本系列为Python学习相关笔记整理所得,IT人,多学无害,多多探索,激发学习兴趣,开拓思维,不求高大上,只求懂点皮毛,作为知识储备,不至于落后太远.如果兴趣学习者,推荐一个基础视频:http://edu.51cto.com/lesson/id-11637.html 本文主要介绍Python的相关背景,环境搭建. 一.了解Python 1,关于Python的语言特点: 借用Python官网Https://www.python.org的解释: Python is powerful

Python学习系列(八)( 面向对象基础)

 Python学习系列(八)( 面向对象基础) Python学习系列(七)( 数据库编程) 一,面向对象 1,域:属于一个对象或类的变量.有两种类型,即实例变量—属于每个实例/类的对象:类变量—属于类本身. 2,类的方法:对象也可以使用属于类的函数来具有功能,这样的函数称之为类的方法.域和方法合称为类的属性.类使用class关键字创建,类的属性被列在一个缩进块中. 3,self:类的方法与普通的函数只有一个特别的区别----他们必须有一个额外的第一个参数名称,但是在调用的时候不能为其赋值,Pyt

Python学习系列(五)(文件操作及其字典)

Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件 在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出,也可以指定每次read读多少字节,例如: 1 #coding:utf-8 2 fn='test1.py' 3 fp=open(fn,'r') #以读的方式打开文件,文件必须首先存在和,.文件在同一目录下py 4 print 'reading pos:',fp.tell() 5 r=fp.read(20) #