python入门之语法简介

一、程序输出,print 语句
注:在python3中,print语句被修改为print()函数
可以用 print 语句显示变量的字符串表示,或者仅使用变量名查看该变量的原始值
    >>> myString = 'Hello World!'
    >>> print myString
    Hello World!
    >>> myString
    'Hello World!'    
  • 直接使用变量名输出,是有引号的,显示的是该对象的字符串表示。引号表示你刚刚输入的变量的值是一个字符串
  • 在python中,下划线(_)具有特殊意义,它表示最后一个表达式的值。如在上述代码之后,再执行下划线,则是:
    >>>_
    'Hello World!'
  • print函数/语句,与字符串格式运算符( % )结合使用,实现字符串替换功能。%s 表示由一个字符串来替换,而%d 表示由一个整数来替换,另外一个很常用的就是%f, 它表示由一个浮点数来替换。
如:
>>> print "%s is number %d!" % ("Python", 1)
    Python is number 1!
括号中为替换的数据,用逗号(,)分隔开。
  • >> 用来重定向输出
下面是一个将输出重定向到日志文件的例子:
python2中:
>>> logfile = open('C:\Users\suxh\Desktop\mylog.txt', 'a')
>>> print >> logfile, 'Fatal error: invalid input!'
>>> logfile.close()
python3中:
>>> f = open('C:\\Users\\suxh\\Desktop\\mylog.txt', 'a')
>>> print('Fatal error: invalid input_python3', file=f)
>>> f.close()
二、程序输入和raw_input()内建函数
使用raw_input()内建函数, 读取标准输入,并将读取到的数据赋值给指定的变量。可以使用 int() 内建函数将用户输入的字符串转换为整数。(注:这个函数在python3中已被废弃,统一用input()函数)
python2:
>>> user = raw_input('Enter login name: ')
Enter login name: root
python3:
>>>user = input('Enter login name: ')
Enter login name: root
上面这个例子只能用于文本输入 。 下面是输入一个数值字符串(并将字符串转换为整数)的例子:
python2:
>>> num = raw_input('Now enter a number: ')
Now enter a number: 1024
>>> print 'Doubling your number: %d' % (int(num) * 2)
Doubling your number: 2048
python3:
>>> num=input('Now enter a number:')
Now enter a number:1024
>>> print('Doubling your number: %d' % (int(num) * 2))
Doubling your number: 2048
三:注释
>>> # one comment
四:运算符
+ 加
- 减
* 乘
/ 除
// 浮点除法(对结果进行四舍五入)
% 求余
** 乘方
< 小于
<= 小于等于
> 大于
>= 大于等于
== 恒等于
!= 不等于
<> 不等于
and 且
or 或
not 非
在python中,(3 < 4 < 5)这种运算表达是被允许的
五:变量和赋值
python变量名是大小写敏感的,并且是动态类型语言, 也就是说不需要预先声明变量的类型。变量的类型和值在赋值那一刻被初始化。
python支持 n=n*2 表达为 n*=2。
Python 不支持C 语言中的自增1 和自减1 运算符, 这是因为 + 和 - 也是单目运算符,Python 会将 --n 解释为-(-n) 从而得到 n , 同样 ++n 的结果也是 n。
六:数字
内建类型:
int (有符号整数)
long (长整数)
bool (布尔值)
float (浮点值)
complex (复数)
python中的长整数long不同于C语言中的长整数,Python 长整数仅受限于用户计算机的虚拟内存总数。类似于 Java 中的BigInteger 类型。
其实还有第六种数字类型, decimal, 用于十进制浮点数。不过它并不是内建类型, 必须先导入 decimal 模块才可以使用这种数值类型。
七:字符串
Python 中字符串被定义为引号之间的字符集。
加号( + ) 用于字符串连接运算, 星号( * ) 则用于字符串重复。
>>> pystr = 'Python'
>>> iscool = 'is cool!'
>>> pystr + ' ' + iscool
'Python is cool!'
>>> pystr * 2
'PythonPython'
三引号( 三个连续的单引号或者双引号)可以用来包含特殊字符。
>>> pystr = '''python
... is cool'''
>>> pystr
'python\nis cool'
>>> print pystr
python
is cool
索引运算符( [ ] ) 切片运算符( [ : ] ) 可以得到子字符串。字符串有其特有的索引规则:第一个字符的索是 0,最后一个字符的索引是 -1
>>> pystr[0]
'P'
>>> iscool[-1]
'!'
>>> pystr[2:5]
'tho'
>>> iscool[:2]
'is'
>>> iscool[3:]
'cool!'
八:列表和元组
列表和元组跟数组一样,通过从0 开始的数字索引访问元素,但是列表和元组 可以存储不同类型的对象 。列表元素用 中括号( [ ] ) 包裹,元素的个数及元素的值可以改变。元组元素用 小括号(( )) 包裹, 不可以更改 (尽管他们的内容可以)。元组可以看成是只读的列表。通过切片运算( [ ] 和 [ : ] )可以得到子集,这一点与字符串的使用方法一样。
>>> aList = [1, 2, ‘aa’, 4]
>>> aList
[1, 2,  ‘aa’, 4]
>>> aList[0]
1
>>> aList[1] = 5
>>> aList
[1, 5, ‘aa’, 4]
元组不可被修改。
>>> aTuple = ('robots', 77, 93, 'try')
>>> aTuple
('robots', 77, 93, 'try')
>>> aTuple[:3]
('robots', 77, 93)
>>> aTuple[1] = 5
Traceback (innermost last):
File "<stdin>", line 1, in ?
TypeError: object doesn't support item assignment
九、字典
字典是Python 中的映射数据类型,工作原理类似Perl 中的关联数组或者哈希表,由 键-值(key-value) 对构成。字典元素用 大括号({ }) 包裹。
>>> aDict = {'host': 'earth'} # 创建一个字典
>>> aDict['port'] = 80 # 字典中添加一个值
>>> aDict
{'host': 'earth', 'port': 80}
>>> aDict.keys() # 所有的键
['host', 'port']
>>> aDict['host'] # 通过键获取值
'earth'
十:for 循环和range()内建函数
Python的for循环,不像传统的for循环,更像是foreach迭代。Python 中的for 接受可迭代对象(例如序列或迭代器)作为其参数,每次迭代其中一个元素。
>>> for item in ['e-mail', 'net-surfing', 'homework','chat']:
... print item
...
python2的print语句默认会加一个换行符,要改变这种行为,在输出语句的最后加个逗号(,)
python2:
>>>print item,
python3:
>>>print (item,end=' ')
单独一个print语句,没有输出内容,则输出一个换行符
>>>print
python3:
>>>print ()
  • range()内建函数来生成从0开始到参数值个数的连续正整数的列表。如:
range(3)则为[0,1,2]
  • 对于一个字符串,可直接用for循环迭代每个字符。如:
    >>>foo = 'abcd'
    >>>for str in foo:
    print str
  • range()函数经常和len()函数一起用于字符串索引。如:
>>> foo = 'abc'
>>> for i in range(len(foo)):
... print foo[i], '(%d)' % i
...
a (0)
b (1)
c (2)
  • enumerate()函数可同时循环索引,同时循环元素。如:
>>> for i, ch in enumerate(foo):
... print ch, '(%d)' % i
...
a (0)
b (1)
c (2)
十一:列表解析
列表解析,表示可以在一行中使用一个for 循环将所有值放到一个列表当中。
如:
>>> squared = [x ** 2 for x in range(4)]
>>> for i in squared:
... print i
0
1
4
9
列表解析甚至能做更复杂的事情, 比如挑选出符合要求的值放入列表。
>>> sqdEvens = [x ** 2 for x in range(8) if not x % 2]
>>>
>>> for i in sqdEvens:
... print i
0
4
16
36
十二:文件和内建函数open() 、file()
open()函数与file()函数作用相同,用于读取文件,写入文件。python中文件的读取,是将文件输出到一个对象变量中,再由这个对象对文件属性进行调用操作。
handle = open(file_name, access_mode = 'r')
如:
filename = raw_input('Enter file name: ')
fobj = open(filename, 'r')
for eachLine in fobj:
print eachLine,
fobj.close()
十三:函数
定义: 由def关键字定义,参数是可选的,这个语句由冒号(:)结束,之后是函数体。
返回: 如果函数中没有 return 语句, 就会自动返回 None 对象。
例:
def addMe2Me(x):
'apply + operation to argument'
return (x + x)
调用: 函数名加小括号()调用函数。
Python 是通过引用调用的。 这意味着函数内对参数的改变会影响到原始对象。不过事实上只有可变对象会受此影响, 对不可变对象来说, 它的行为类似按值调用。
>>> addMe2Me('Python')
默认参数:python函数的参数可以有一个默认值,参数以赋值语句的形式提供。这意味着调用函数时如果没有提供这个参数,则取默认值。
>>> def foo(debug=True):
... 'determine if in debug mode with default argument'
... if debug:
... print 'in debug mode'
... print 'done'
十四:类
定义:由class关键字定义,可以提供一个可选的父类或者说基类; 如果没有合适的基类,
那就使用 object 作为基类。
>>> class FooClass():
	'''文档字符串'''
	version=0.1 #这是一个静变量
	def __init__(self,nm='Haha'): #注:这里是双下划线
		"""这是文档字符串"""
		self.name = nm #这个方法给变量name赋值
	def showname(self):
		print('Your name:',self.name)
		print('My name:',self.__class__.__name__) #注:这里是双下划线
	def showver(self):
		print(self.version)
	def addMe2Me(self,x):
		return x+x
>>> fool = FooClass()
>>> fool.showname()
Your name: Haha
My name: FooClass
>>> fool.showver()
0.1
>>> fool.addMe2Me('xyz')
'xyzxyz'

在python类中,所有前后具有双下划线的变量或函数,都是有特殊意义的。如上例中,__init__()会在类被实例化的时候自动执行,类似构造函数,但这里并不起到创建实例对象的左右,仅仅是 对象创建后,自动执行的第一个方法 。它需要一个默认参数,self。
例中每个函数出现的 self ,相当于其他语言中的 this 。表示当前实例自己本身。
十五:模块
python中,使用模块具有联系的python代码一个个组织到独立的文件中。并提供基础模块库sys。
导入模块:import module_name
访问模块函数或访问一个模块变量:
module.function()
module.variable
例:
>>> import sys
>>> sys.stdout.write('Hello\n')
Hello
6
十六:实用的函数们
函数 描述
dir([obj]) 显示对象的属性,如果没有提供参数, 则显示全局变量的
名字
help([obj]) 以一种整齐美观的形式 显示对象的文档字符串, 如果有
提供任何参数, 则会进入交互式帮助。
int(obj) 将一个对象转换为整数
len(obj) 返回对象的长度
open(fn, mode) 以 mode('r' = 读, 'w'= 写)方式打开一个文件名为 fn 的文
range([[start,]stop[,step]) 返回一个整数列表。起始值为 start, 结束值为 stop - 1;
start默认值为 0, step默认值为1。
raw_input(str) 等待用户输入一个字符串, 可以提供一个可选的参数 str
用作提示信息。(这个函数在python3中被废弃,统一为
input()函数)
str(obj) 将一个对象转换为字符串
type(obj) 返回对象的类型(返回值本身是一个type 对象!)


































猜你喜欢

转载自blog.csdn.net/u014773389/article/details/79388275