5

交互式编程

交互式编程不需要创建py文件,是通过 Python 解释器的交互模式进来编写代码,cmd进入在命令行中输入 Python 命令即可启动交互式编程,提示窗口如下:

C:\Users\Administrator>python
Python 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)]
 on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

在 python 提示符中输入以下文本信息,然后按 Enter 键查看运行效果:

>>> print("Hello, Python!")
Hello, Python!

脚本式编程

首先使用文本编辑器编写 py 文件,在通过 python 命令调用解释器开始执行py文件,直到执行完毕。当文件执行完成后,解释器不再有效。

让我们编写一个简单的 Python 程序。所有 Python 文件将以 .py 为扩展名。将以下的源代码拷贝至 first.py 文件中。

print("Hello, Python!")

使用python命令执行 first.py文件

$ python test.py
Hello, Python!

行和缩进

学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。python 最具特色的就是用缩进来写模块。

缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。如下所示:

if True:
    print("True")
else:
    print("False")

以下代码将会执行错误:

if True:
    print("Answer")
    print("True")
else:
    print("Answer")
    # 没有严格缩进,在执行时会报错
  print("False")

执行以上代码,会出现如下错误提醒:

$ python test.py  
  File "test.py", line 5
    if True:
    ^
IndentationError: unexpected indent

IndentationError: unexpected indent 错误是 python 编译器是在告诉你"Hi,老兄,你的文件里格式不对了,可能是tab和空格没对齐的问题",所有 python 对格式要求非常严格。

如果是 IndentationError: unindent does not match any outer indentation level错误表明,你使用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可。

因此,在 Python 的代码块中必须使用相同数目的行首缩进空格数。 建议你在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 , 切记不能混用!!

题外话:看过一个文章说使用空格键的程序员比Tab键的程序员赚的多 http://blog.csdn.net/lunaqi/a...

多行语句

为了提高代码的阅读性,Python语句中一般以新行作为为语句的结束符。也就是说 一行 只写 一条语句。如果一条语句过长,那么就可能会导致在阅读代码时不是很方便。怎么办?

我们可以使用斜杠( )将一行的语句分为多行显示,如下所示:

total = item_one + \
        item_two + \
        item_three

语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:

days = ['Monday', 'Tuesday', 'Wednesday',
        'Thursday', 'Friday']

Python 引号

Python 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串,引号的开始与结束必须的相同类型的。

其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释

word = 'word'
sentence = "这是一个句子。"
paragraph = """这是一个段落。
包含了多个语句"""

Python注释

python中单行注释采用 # 开头。

# 第一个注释
print("Hello, Python!")  # 第二个注释

输出结果:

Hello, Python!

注释可以在语句或表达式行末:

name = "Madisetti" # 这是一个注释

python 中多行注释使用三个单引号(''')或三个双引号(""")。

'''
这是多行注释,使用单引号。
这是多行注释,使用单引号。
这是多行注释,使用单引号。
'''

"""
这是多行注释,使用双引号。
这是多行注释,使用双引号。
这是多行注释,使用双引号。
"""

Python空行

函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

记住:空行也是程序代码的一部分。

同一行显示多条语句

Python可以在同一行中使用多条语句(但不推荐),语句之间使用分号(;)分割,以下是一个简单的实例:

str='a' ; str1='b' ; print(str) ; print(str1) #注意空格

执行以上代码,输入结果为:

a
b

输出

用print()在括号中加上字符串,就可以向屏幕上输出指定的文字。比如输出'hello, world',用代码实现如下:

print('hello, world')

print()函数也可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出:

print('The quick brown fox', 'jumps over', 'the lazy dog')
The quick brown fox jumps over the lazy dog

print()也可以打印整数,或者计算结果:


print(300)
300
print(100 + 200)
300

因此,我们可以把计算100 + 200的结果打印得更漂亮一点:

print('100 + 200 =', 100 + 200)
100 + 200 = 300

注意,对于100 + 200,Python解释器自动计算出结果300,但是,'100 + 200 ='是字符串而非数学公式,Python把它视为字符串,请自行解释上述打印结果。

输入

现在,已经可以用print()输出你想要的结果了。但是,如果要让用户从电脑输入一些字符怎么办?Python提供了一个input(),可以让用户输入字符串,并存放到一个变量里。比如输入用户的名字:

name = input()
jerry

当你输入name = input()并按下回车后,Python交互式命令行就在等待你的输入了。这时,你可以输入任意字符,然后按回车后完成输入。

输入完成后,不会有任何提示,Python交互式命令行又回到>>>状态了。那我们刚才输入的内容到哪去了?答案是存放到name变量里了。可以直接输入name查看变量内容:

name
'jerry'

要打印出name变量的内容,除了直接写name然后按回车外,还可以用print()函数:

print(name)
jerry

有了输入和输出,我们就可以把上次打印'hello, world'的程序改成有点意义的程序了:

name = input()
print('hello,', name)

运行上面的程序,第一行代码会让用户输入任意字符作为自己的名字,然后存入name变量中;第二行代码会根据用户的名字向用户说hello,比如输入lidao:

python hello.py
lidao
hello, lidao

但是程序运行的时候,没有任何提示信息告诉用户:“嘿,赶紧输入你的名字”,这样显得很不友好。幸好,input()可以让你显示一个字符串来提示用户,于是我们把代码改成:

name = input('please enter your name: ')
print('hello,', name)

再次运行这个程序,你会发现,程序一运行,会首先打印出please enter your name:,这样,用户就可以根据提示,输入名字后,得到hello, xxx的输出:

python hello.py
please enter your name: lidao
hello, lidao

每次运行该程序,根据用户输入的不同,输出结果也会不同。在命令行下,输入和输出就是这么简单。
input()和print()是在命令行下面最基本的输入和输出,但是,用户也可以通过其他更高级的图形界面完成输入和输出,比如,在网页上的一个文本框输入自己的名字,点击“确定”后在网页上看到输出信息。

标识符

Python中的标识符是用于识别变量、函数、类、模块以及其他对象的名字。

命名规则:

  1. 标识符可以包含字母、数字及下划线(_),但是必须以一个非数字字符开始。
  2. 字母仅仅包括ISO-Latin字符集中的A–Z和a–z。
  3. 标识符对大小写敏感的,因此 FOO和foo是两个不同的对象。
  4. 特殊符号,如$、%、@等,不能用在标识符中。

以下划线开头的标识符是有特殊意义的。以单下划线开头 foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入; 以双下划线开头的 foo 代表类的私有成员;以双下划线开头和结尾的 __foo 代表 Python 里特殊方法专用的标识,如 _init() 代表类的构造函数。
另外,如if,else,for 等单词是保留字,也不能将其用作标识符。下面的表列出了所有的保留字符及其说明:

保留字

and 用于表达式运算,逻辑与操作
as 用于类型转换
assert 断言,用于判断变量或条件表达式的值是否为真
break 中断循环语句的执行
class 用于定义类
continue 继续执行下一次循环
def 用于定义函数或方法
del 删除变量或序列的值
elif 条件语句,与if 、 else结合使用
else 条件语句,与if 、 elis结合使用。也用于异常和循环语句
except except包含捕获异常后的操作代码块,与try、finally结合使用
exec 用于执行python语句
for for循环语句
finally 用于异常语句,出现异常后,始终要执行finally包含的代码块。与try、except结合使用
from 用于导入模块,与import结合使用
global 定义全局变量
if 条件语句,可与elif、else结合使用
import 用于导入模块,可与from结合使用
in 判断变量的值是否在序列中
is 判断变量的值是否为某个类的实例
lambda 定义匿名函数
not 用于表达式运算,逻辑非操作
or 用于表达式运算,逻辑或操作
pass 表示空的类、方法或函数的占位符
print 打印语句
raise 异常抛出操作
return 指定函数的返回值
try try包含可以出现异常的语句,与except、finally结合使用
while while循环语句
with 简化python语句
yield 用于依次从函数返回值

变量

什么是变量?请回忆初中数学所学的代数基础知识:

设正方形的边长为a,则正方形的面积为a x a。把边长a看做一个变量,我们就可以根据a的值计算正方形的面积,比如:
若a=2,则面积为a x a = 2 x 2 = 4;
若a=3.5,则面积为a x a = 3.5 x 3.5 = 12.25。
在Python中,变量用来存储数据。比如正方形的边长实际值2和3.5。

在实际开发时,如果有数据要被变量存储起来的话,那么就定义变量名,然后赋值相应的数据。
每个变量都包括变量名称和数据这些信息。
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在Python中,使用等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:

counter = 100   # 赋值整型变量
miles = 1000.0  # 浮点型
name = "lidao" # 字符串

print(counter)
print(miles)
print(name)

以上实例中,100,1000.0和"lidao"分别赋值给counter,miles,name变量。
执行以上程序会输出如下结果:

100
1000.0
lidao

多个变量赋值
Python允许你同时为多个变量赋值。例如:
a = b = c = 1
以上实例,创建一个整型数据,值为1,三个变量都存储同一数据。
当然也可以为多个数据指定多个变量。例如:
a, b, c = 1, 2, "jingjing"jingjing
以上实例,两个整型数据1和2的分配给变量 a 和 b,字符串对象 "jingjing" 分配给变量 c。

变量名称
在实际开发中,理论上变量名只要按照标识符命名规则可以随意去命名,只要保证不产生冲突即可,但是为了使我们书写出来的代码具有一定的易读特性,因此在定义变量名时,尽可能让它具有实际意义。

# 定义身高变量
high = 175
# 定义名字变量
name = 'jerry'
# 定义年龄变量
age = 19

离岛
588 声望79 粉丝