python基本语法
- python语法采用缩进形式,一般使用tab键或4个空格。一般情况下,不要混用这两种缩进格式,可能会报错
- 当语句以“:”结束时,缩进的语句视为代码块
- pyhon程序是大小写敏感的
数据类型
python 中可以直接处理的数据类型包括整数、浮点数、字符串、布尔值、空值。此外,python还提供了list、字典等数据类型。同时也允许自定义数据类型。
- 整数和浮点数:整数和浮点数在计算机中的存储机制不一样。和其他语言一样,在python中整数除法,取余的结果仍然为整数。
>>> 30/3
10
>>> 10/3
3
>>> 10.0/3
3.3333333333333335
>>> 10/3.0
3.3333333333333335
- 字符串:以单引号或双引号括起来的内容,但是字符串的内容不包含引号本身。如果字符串中有引号,就要使用转移字符或使用另一种引号作为字符串标记。
>>> print 'abc'
abc
>>> print "ABC"
ABC
>>> print "I'am a student"
I'am a student
>>> print 'I\'m a student'#使用转移字符输入字符串中需要的单引号
I'm a student
>>> print r"I\'m a student"#使用r""使转义字符不转义
I\'m a student
- 布尔值:有True和False两种值。在python中,可以通过True和False表示布尔值,也可以通过布尔计算计算出来。布尔值可以用and 、or和not运算出来,运算规则和数学中的与或非一样。其也经常运用于条件判断中。
>>> True #直接使用
True
>>> False
False
>>> 3 > 2 #表达式计算
True
>>> True and False #使用与或非计算
False
>>> True or False
True
>>> not True
False
>>> age = 18
>>> if age >= 18: #运用于条件判断之中
... print 'adult'
... else:
... print'teenager'
...
adult
- 空值:一个特殊的值,用None表示。不能理解为0,因为0是有意义的,而None是一个特殊的空值。
变量
python是动态语言,其在定义变量时不需要确定其数据类型。且在python中变量实际上是一个字符串对象,它和值一起构成一项{name:object}关联。
- 变量名: 变量在程序中以变量名的形式存在,其命名是字母、数字和_的组合,且不能用数字开头
>>> a = 3
>>> a3 = 'abc'
>>> a_4 = '123'
>>> _123a = 567
>>> 12as = 34 #以数字开头会报错
File "<stdin>", line 1
12as = 34
^
SyntaxError: invalid syntax
- 在python中,同一变量可以反复赋不同类型的值
>>> a = 123
>>> a = 'iop'
>>> a = True
- 在python中,可以把一个变量赋值给另一个变量。
>>> a = True
>>> b = a
>>> a = 123
>>> b
True
>>> a
123
这个操作实际上就是把变量b指向变量a所指向的数据,而不是指向变量a,故变量a的值改变,变量b的值不会变。
常量
常量即为不能变的变量,一般用确定大写字母表示,例如用PI表示圆周率。但是python没有任何机制保证PI不会被改变。
字符编码
计算机只能处理数字,要处理文本需要将其转换成数字。python中有ASICC编码、Unicode编码和UTF-8编码
- ASICC编码: 1个字节,包括英文字母、数字和一些字符;
- Unicode编码:一般2个字节表示一个字符,大部分操作系统和编程语言都支持;
- UTF-8:是一种可变长的编码。UTF-8编码根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。
ASICC编码属于UTF-8编码的一部分
现在计算机工作系统通常的编码方式为:内存中,使用Unicode编码;当需要保存到硬盘或传输的时候,使用UTF-8编码。
python的字符串
- 可以把字母和对应的字符互换
>>> ord('a')
97
>>> chr(97)
'a'
- 以Unicode 表示的字符用
u'...'
表示
>>> print u'中文'
中文
>>> print u'123'
123
- 把Unicode编码转换为UTF-8编码用函数
encode('UTF-8')
>>> u'ABC'.encode('UTF-8')
'ABC'
>>> u'中文'.encode('utf-8') #一个字符转换成3个字符
'\xe4\xb8\xad\xe6\x96\x87'
- 把UTF-8比编码转换成Unicode编码用函数
decode('utf-8')
>>> '123'.decode('utf-8')
u'123'
>>> '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
u'\u4e2d\u6587'
>>> print '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
中文
注意:在保存源码时,须指定保存为UTF-8编码格式,在源代码首行加上# -*- coding : utf-8 -*-
#!/usr/bin/env python
# -*- coding: utf-8 -*-
name = raw_input('请输入一个名字:')
print 'hello,',name
----------
[zhang@localhost python]$ ./hello.py
请输入一个名字:张三
hello, 张三
如果你使用Notepad++进行编辑,除了要加上# -- coding: utf-8 --外,中文字符串必须是Unicode字符串.
字符串的格式化
日常生活中,经常会遇到‘xx先生,找您x元钱’之类的半填充式的对话,这里就需要用到对字符串的格式化输入
在python中,格式化字符用%运算符,常用的占位符有:
- %d 整数
- %f 浮点数
- %s 字符串
>>> 'hello,%s '% 'world'
'hello,world '
>>> print u'找您%d元钱' % 10
找您10元钱
>>> '%.2f' % 3.14
'3.14'
- 在%和占位符之间加数字可以指定整数和小数的位数
>>> '%3d' % 7 #三位数右对齐
' 7'
>>> '%03d' % 7 #以0补全缺失位
'007'
>>> '%.5f' % 3.14
'3.14000'
- %s 可以将任何数据类型转化为字符串
>>> '%s' % 25
'25'
>>> '%s' % 3.14
'3.14'
>>> '%s' % True
'True'