Python是一门优雅而健壮的编程语言,它继承了传统编译语言的强大和通用性,同时也借鉴了脚本语言和解释语言的易用性。
要点:
- 面向对象:每一个变量都是一个类,有其自己的属性(attribute)与方法(method)。
- 语法块:用缩进(四个空格)而不是分号、花括号来标记。因此,行首的空格不能随意书写。
- 注释:行内用"#"号,行间注释写在两组连续三单引号之间:'''
- 续行:行尾输入一个反斜杠加一个空格('\ '),再换行。如果行尾语法明显未完成(比如以逗号结尾)可以直接续行。
- 打印与输入:函数print()与input(),注意print()的sep与end参数。
- 变量:无需指定变量类型,也需要提前声明变量。
- 删除变量:del()
- 复制变量:直接将变量a赋值给b,有时仅仅复制了一个"引用"。此后b与a的改动仍会互相影响。必要时使用a is b来判断是否同址。
- 模块:通过import pandas的方式加载模块(或者import pandas as pd)并用形如pandas.DataFrame(或pd.DataFrame)的方式调用模块内的方法。也可以使用from pandas import DataFrame的方式,这样在下文可以直接使用DataFrame作为调用名。
- 帮助:配合使用dir()与help()命令;其中前者是输出变量所有的成员。
Python标识符
标识符可以简单地理解为一个名字,它主要用来标识变量、函数、类、模块和其他对象的名称。
合法的Python标识符,需要遵守如下规定:
- 第一个字符必须是字母或下划线(_)
- 剩下的字符可以是字母和数字或下划线
- 大小写敏感
- 不能是Python的关键字,例如def、class就不能作为标识符
以下划线开头的标识符是有特殊意义的。以单下划线开头_foo的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用from xxx import *而导入。
以双下划线开头的__foo代表类的私有成员,以双下划线开头和结尾的__foo__代表Python里特殊方法专用的标识,如__init__()代表类的构造函数。
Python可以同一行显示多条语句,方法是用分号;分开,如:
bash
>>> print("hello");print("world");
hello
world
Python关键字
下面的列表显示了在Python中的保留字。这些保留字。这些保留字不能用作常数或变数,或任何其他标识符名称。
所有Python的关键字只包含小写字母。
and | exec | not |
---|---|---|
assert | finally | or |
break | for | pass |
class | from | |
continue | global | raise |
def | if | return |
del | import | try |
elif | in | while |
else | is | with |
except | lambda | yield |
缩进
任何一种编程语言都有各自的语法和编程规范,Python之所以以'优雅,简单'著称,其中一个最重要的原因,就是它的"缩进"。大部分的编程语言都是使用"{}"来表示一个语句块或者代码段,而Python用缩进层次来组织代码块,而约定一个缩进是用'4个空格'来表示,请务必遵守约定俗成的习惯,坚持使用4个空格的缩进。
如果是用文本编辑器或者IDE,可以把Tab自动转换为4个空格,然后用tab键来使用缩进,确保不混用Tab和空格。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。如下所示:
bash
if True:
print("neo")
else:
print("smile")
以下代码将会执行错误:
bash
if True:
print("neo")
else:
print("smile")
print("it")
因此,在Python的代码块中必须使用相同数目的行首缩进空格数。
多行语句
Python语句中一般以新行作为语句的结束符。
但是我们可以使用斜杠(\)将一行的语句分为多行显示,如下所示:
bash
total = item_one + \
item_two + \
item_three
语句中包含[],{},或()括号就需要使用多行连接符。如下实例:
bash
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
Python注释
以'#'开头的语句是注释,不一定要出现在行首,在某些语句后面也可以加注释,注释是给人看的,可以是任意内容,解释器会忽略掉注释,但注意不要使用无意义的注释。
Python中单行注释采用#开头,Python没有块注释,所以现在推荐的多行注释也是采用的#比如:
bash
#!/usr/bin/python
# First comment
print "Hello, Python!"; # second comment
输出结果:
bash
Hello, Python!
注释可以在语句或表达式行末:
bash
name = "Madisetti" # This is again comment`
多条评论:
bash
# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.
Python空格和空行
在Python中,为了让代码看起来更清晰,具有更好的可读性,有时会在代码中插入空格和空行。空格和空行与代码缩进不同,并不是Python语法的一部分。
书写时不插入空格或者空行,Python解释器运行也不会出错。但是空格或者空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
空格和空行是为了增加代码可读性。
比如在变量复制时添加空格。
bash
hello = "world"
比如类成员函数之间空一行,模块级函数和类定义之间空两行;
bash
class A:
def __init__(self):
pass
def hello(self):
pass
def main():
pass
Print输出与Input输出
print()默认输出是换行的,如果要实现不换行需要加上end参数。
bash
x="a"
y="b"
print(x, end=' ')
print(y, end=' ')
在Python中可以通过input()函数获取键盘输入数据。input()函数首先输出提示字符串,然后等待用户键盘输入,直到用户按回车键结束,函数最后返回用户输入的字符串(不包括最后的回车符),保存于变量中,然后程序继续执行input函数后面的语句。
示例:
实现根据输入的年份(4位数字,如1981),计算目前的年龄,程序中使用input()函数输入年份,使用datetime模块获取当前年份,然后用获取的年份减去输入的年份,就是计算的年龄。
bash
import datetime
birth_year = input("请输入您的出生年份:")
now_year = datetime.datetime.now().year
age = now_year - int(birth_year)
print("您的年龄为: " + str(age) + "岁")