阅读本文的作者最好有一些C/C++的编程基础知识。毕竟python是很简单易上手的语言。本文将以非常简练的方式,直接上例子、讲注意点来帮助快速读者理解上手。毕竟现在很多算法代码可以直接上网copy,不需要从头自己写,所以你只需要会调一些逻辑上的bug、做一些小修补就足够了。
本文使用的文本编辑器/运行环境是:Anaconda,可百度下载来测试,比用命令行友好些。操作系统是MacOS。
先说下python的一些规范:
1)标识符第一个字符必须是下划线或者字母;
2)对大小写敏感;
3)注意保留字,即关键字,不能将它们用作任何标识符名;
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
4)注释以#开头,多行注释用3个引号。单引号或者双引号都可以。
5)python最具特色的就是:利用缩进来表示代码块。不需要用大括号{}。
6)如果语句很长,用反斜杠\来实现多行语句,如:
total = item_one + \
item_two + \
item_three
下面分块详细介绍python:
print的使用有3个要点:
1)直接打印字符串。可以用占位符形式打印输出。
注意,Python中,字符串用单引号或者双引号都可以。
由于Python用unicode编码,可以支持多语言,也就是说可以print里面写中文哦。
占位符:和C语言中差不多。用%连接格式化的字符串和要填充的内容。内容多于2个的话,要用括号包起来,并且注意顺序。
如:
print('Hello, %s' % 'world')
print('Hi, %s, you have $%d.' % ('Michael', 1000000))
再举个稍微复杂些的例子,试试看看得懂么?
print('%2d-%02d' % (3, 1))
print('%.2f' % 3.1415926)
另一种格式化的方法是用format()方法。它会用方法的传入参数替换字符串的占位符{0}、{1}……但是写起来比用%麻烦。
print('Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125))
如果字符串要用到' 或 '',则需要使用转义字符来标识。如:
print("I\'m OK")
转义字符还有更多用处,如换行\n,制表符\t,字符\本身也要转义:\\ 。
python还可以用 r' ' 表示单引号内部的字符串默认不转义。
如果打印的内容要很多次换行,加太多\n比较麻烦,可以用'''......'''来表示多行内容。如:
print('''666
...123
...456''')
2)字符串叠加后打印
print('Hello World and'+' Hello Hangzhou!!')
特别注意的是:字符串不可以和数字相加,也就是说要连接字符串和数字时,别忘了给数字也加上单引号。
print('iPhone'+'6') #如果6没加''就报错啦
3)运算后打印
顾名思义。试试下面语句的打印结果吧:
print(5+5)
print('5+5')
print("5+5")
首先,假设你已经有数据类型的概念,例如整数、浮点数。如果忘记了,翻翻C语言基础。
1)加减乘除。比较简单,就不写了。使用+ - * /符号运算即可。
除法在python中可以细分为浮点数除法,即结果是浮点数,用“/”,还有一种是地板除“//”,结果是整数。
如10/3 结果是3.3333333…… 而10//3结果是3。
2)n次幂:^表示两个*,即**。**3表示立方,**4表示4次方,以此类推。
3)取余数:%,如求8除以3的余数:8%3
先简要讲两个小知识:
0.1)布尔值:在python中,直接用true、false表示。也可以使用布尔运算得到:
布尔值还可以参与and、or、not运算。
布尔值常用语if条件判断中。
0.2)空值:用none表示,但不是0。
变量的概念和C语言、数学代数中一致。变量名必须是英文数字和_的组合,不能用数字开头。如果要用多个单词表示自变量,单词之间需要加下划线。
比如:a=1,这里变量是个整数;t_123='aaa',这里变量是个字符串;T=True,这里是个布尔值,等等。
1)while
和其他变成语言中大同小异了,看个例子你就懂了:
condition = 0
while condition < 10:
print(condition)
condition = condition + 1
2)for
for … in语法规则和C语言中类似。
example_list = [1,2,3,4,5,6,7,12,543,876,12,3,2,5]
for i in example_list:
print(i)
print('inner')
print('outer')
这里涉及到list的数据类型了,下次讲。这个程序会依次输出list中的数字,同时输出inner;循环完毕后输出一个outer。这是因为python是依靠冒号和缩进来判别是否为代码块的。类似于C语言中,print(i)和print(inner)被大括号括起来了。
需要注意的是,条件写完后,不是加大括号,而是加一个冒号,利用冒号和下面的内容缩进来让系统识别你的代码块。
1)if
x = 1
y = 2
z = 3
if x < y:
print('x is less than y')
2)if...else...
x = 1
y = 2
z = 3
if x > y:
print('x is greater than y')
else:
print('x is less or equal to y')
python中没有三目操作符,即condition ? value1 : value2不能用。这会导致冗长的if-else?不不不,python中可以通过行内if-else来解决:
worked = True
result = 'done' if worked else 'not yet'
print(result)
3)elif
elif就是相当于else if。注意elif后也要加冒号。
x = 4
y = 2
z = 3
if x > 1:
print ('x > 1')
elif x < 1:
print('x < 1')
else:
print('x = 1')
print('finish')