1、程序输出,print语句
跟C语言中的printf函数很类似,当在代码中使用print语句即可输出想要看到的变量内容,如可以先把一个字符串复制给str,然后用print函数显示变量内容,如下:
str = "hello python"
print str
Python的print语句,与字符串运算符(%)结合使用,可实现字符串替换功能,如:print "%s is number %d" % ("python",1),语句将输出python is number 1
python中的重定向:1)以标准错误输出:
import sysprint >> sys.stderr, 'Fatal error:invalid input!'2)输出到日志文件:
logfile = open('D:\log.txt','a')
print >> logfile, 'Fatal error:invalid input!'logfile.close();
2、程序输入,raw_input()函数
从用户得到数据输入的最容易的方法是使用raw_input()函数,它读取标准输入,并将读取到的数据赋值给制定的变量,可以使用int()内建函数将用户输入的字符串转换成整数,如下例子:
1)用户输入
username = raw_input('Enter your name:')print '%s, welcome' % (username)
2)使用内建函数int()转换
num = raw_input('Enter a number:')print 'Doubling your number is: %d' % (int(num)*2)
注:在遇到陌生函数的时候使用函数help(函数名)来得到相应的帮助信息
3、注释
和大部分脚本及Unix-Shell语言一样,Python也是用#符号标识注释,从#开始到一行结束内容均为注释。
#one comment
有一种,叫文档字符串特别注释,可以在模块、类或者函数的其实添加一个字符串,起到在线文档的功能,这跟Java的文档注释类似。
def foo():
"this is a doc string"
return True
4、运算符
python中的标准算术运算符+ - * / // % ** (加、减、乘、除和取余是标准运算符,单斜杠作传统除法,双斜杠用作浮点除法,对结果四舍五入),传统除法是指两个操作数都是整数的话,执行地板除(取比商小的最大整数)。双星号(**)表示乘方运算符。
python中的标准比较运算符< <= > >= == != <>表示小于、小于等于、大于、大于等于、不等、不等(Pascal风格,渐渐淘汰),运算结果返回布尔值(True/False)
python中提供了逻辑运算符 and or not 将任意表达式连接在一起,并得到一个布尔值。
5、变量和赋值
python中的变量命名规则和大多数高级语言一样,变量仅仅是一些字符开头的标识符即,字母或者下划线开头,其他的字符可以是字母,数字或者下划线,且大小写敏感。
python是动态类型语言,也就是说不需要预先声明变量类型,变量的类型和值在赋值那一刻被初始化,赋值通过等号来执行。注:python不支持C中的自增1或者自减1运算符
6、数字
python支持五种基本数字类型,其中三种是整数类型。
int (有符号整数)
long (长整数)
bool (布尔值)
float (浮点值)
complex (复数)
注:其实还有第六种数字类型:decimal,用于十进制浮点数,不是内建类型,需要导入decimal模块才可以使用这种类型
7、字符串
python中字符串被定义为引号之间的字符集合,支持使用成对单引号或双引号,三引号(三个连续的单引号或者双引号)可以包含特殊字符。使用 索引运算符([ ])和切片运算符([ : ])可以得到子字符串。字符串有其特殊的索引规则:第一个字符的索引是0,最后一个字符索引是-1
加号(+)用于字符串连接运算,星号(*)则用于字符串重复。
8、列表和元组
可以讲列表和元组当成普通的数组,他能保存任意类型的python对象 ,和数组一样,通过从0开始的数字索引访问元素,但是列表和元组可以存储不同类型的对象。
列表和元组有基础重要的区别,列表元素用中括号([ ])包裹,元素个数及元素的值可以改变。元组元素用小括号(())包裹,不可以更改(尽管他们的内容可以)。元组可以看成是只读列表。通过切片运算符([ ]和[ : ])可以得到子集,这一点与字符串的使用方法一样。测试如下:
9、字典
字典是python中的映射数据类型,工作原理类似Perl中的关联数组或者哈希表,由键值对(key-value)构成,几乎所有类型的python对象都可以作为键,一般以数字或者字符串最为常用。值可以是任意类型的python对象,字典元素用大括号({ })包裹。
10、代码块及缩进对齐
代码块通过缩进对齐表达代码逻辑而不是使用大括号,因为没有了额外的字符,程序的可读性更高,而且缩进完全清楚地表达一个语句属于哪一个代码块。当然,代码块也可以只有一个语句组成。
python的两大特性,一是简洁,而是可读性好。
11、if语句
标准的if条件语句的语法如下:
if expression:
if_suite
如果表达式的值非0或者为布尔值True,则代码组if_suite被执行;否则去执行下一条语句。代码组是一个python术语,它由一条或多条语句组成,表示一个子代码块。Python与其它语言不同,条件表达式不需要括号括起来。
if x < .0:print '"x" must be at least 0!'
python当然也支持else语句,具体语法:
if expression :
if_suite
else:
else_suite
同样,还支持else-if,使用elif,具体语法:
if expression1:
if_suite
elif expression2:
elif_suite
else
else_suite
12、while循环
标准的while循环条件与if一样,要求使用缩进来分割每个子代码块。如下格式
while expression:
while_suite
while语句会被连续不断地循环执行,直到表达式的值变成0或者False;接着python会执行下一句代码。
13、for循环和range()内建函数
python中的for循环与传统的for循环(计数器循环)不太一样,更像Shell脚本里的foreach迭代。python中的for接受可迭代对象(如:序列或者迭代器)作为参数,每次迭代其中一个元素。
print语句默认会给每一行添加一个换行符。只要在print语句的最后添加一个逗号(,)可以改变这个行为,如上例。注:,没有任何参数的print语句,用来输出一个换行符。
python提供了一个range()内建函数来生成列表,接受一个数值范围,生成一个列表。
range()函数经常和len()函数一起用于字符串索引,在这里我们要显示每一个元素及其索引值。如下所示:
这些循环有一个约束,就是要么循环索引要么循环元素,但python2.3新增了enumerate()函数,解决了这个缺陷: