Python基础
----文本编辑器
----输入与输出
在交互式命令行写程序,好处是一下就能得到结果,坏处是没法保存,下次还想运行的时候,还得再敲一遍。
强烈推荐:Visual Studio Code!
请注意: 不要用Word和Windows自带的记事本。
Word保存的不是纯文本文件,
而记事本会自作聪明地在文件开始的地方加上几个特殊字符(UTF-8 BOM),结果会导致程序运行出现莫名其妙的错误。
bom即byte order mark,
BOM——ByteOrderMark,就是字节序标记
print('hello, Beyond')
注意: print
前面不要有任何空格。
然后,选择一个目录,例如C:\work
,
把文件保存为hello.py
,
就可以打开命令行窗口,
把当前目录切换到hello.py
所在目录,就可以运行这个程序了:
C:\work>python hello.py
hello, Beyond
必须要以.py
结尾,其他的都不行。
此外,文件名只能是英文字母、数字和下划线的组合。
如果当前目录下没有hello.py
这个文件,运行python hello.py
就会报错:
C:\Users\IEUser>python hello.py
python: can't open file 'hello.py': [Errno 2] No such file or directory
报错的意思就是,无法打开hello.py
这个文件,因为文件不存在。
直接运行py文件
能不能像.exe文件那样直接运行.py
文件呢?
在Windows上是不行的,
但是,在Mac和Linux上是可以的,
方法是在.py
文件的第一行加上一个特殊的注释:
#!/usr/bin/env python3
或者
#!/usr/bin/python
#!/usr/bin/env python3
print('hello, Beyond')
然后,通过命令给hello.py
以执行权限:
$ chmod a+x hello.py
就可以直接运行hello.py
了
./hello.py
hello, Beyond
小结
用文本编辑器写Python程序,然后保存为后缀为.py
的文件,就可以用Python命令直接运行这个程序了。
Python的交互模式和直接运行.py
文件有什么区别呢?
直接输入python
进入交互模式,相当于启动了Python解释器,但是等待你一行一行地输入源代码,每输入一行就执行一行。
直接运行.py
文件相当于启动了Python解释器,然后一次性把.py
文件的源代码给执行了,你是没有机会以交互的方式输入源代码的。
输出
用print()
在括号中加上字符串,就可以向屏幕上输出指定的文字。
比如输出'hello, beyond'
,用代码实现如下:
>>> print('hello, beyond')
print()
函数也可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出:
>>> print('未闻花名', 'vwhm.net')
未闻花名 vwhm.net
print()
会依次打印每个字符串,遇到逗号“,”会输出一个空格
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把它视为字符串,请自行解释上述打印结果。
输入
Python提供了一个input()
,可以让用户输入字符串,并存放到一个变量里。
比如输入用户的名字:
>>> name = input()
Beyond
当你输入name = input()
并按下回车后,Python交互式命令行就在等待你的输入了。
这时,你可以输入任意字符,然后按回车后完成输入。
输入完成后,不会有任何提示,Python交互式命令行又回到>>>
状态了。
那我们刚才输入的内容存放到name
变量里了。
可以直接输入name
查看变量内容:
>>> name
'Beyond'
在计算机程序中,变量不仅可以为整数或浮点数,还可以是字符串,
因此,name
作为一个变量就是一个字符串。
要打印出name
变量的内容,除了直接写name
然后按回车外,还可以用print()
函数:
>>> print(name)
Beyond
有了输入和输出,我们就可以把上次打印'hello, world'
的程序改一下:
name = input()
print('hello,', name)
运行上面的程序,第一行代码会让用户输入任意字符作为自己的名字,然后存入name
变量中;
第二行代码会根据用户的名字向用户说hello
,比如输入Beyond
:
C:\Workspace> python hello.py
Beyond
hello, Beyond
但是程序运行的时候,没有任何提示信息告诉用户:“嘿,赶紧输入你的名字”,这样显得很不友好。
input()
可以让你显示一个字符串来提示用户:
name = input('please enter your name: ')
print('hello,', name)
再次运行这个程序,你会发现,程序一运行,会首先打印出please enter your name:
这样,用户就可以根据提示,输入名字后,得到hello, xxx
的输出:
C:\Workspace> python hello.py
please enter your name: Beyond
hello, Beyond
小结
输入是Input,输出是Output,
输入输出统称为Input/Output,或者简写为IO。
input()
和print()
是在命令行下面最最基本的输入和输出,
任何一种编程语言都有自己的一套语法,编译器 或者 解释器 就是负责把符合语法的程序代码转换成CPU能够执行的机器码,然后执行。
Python的语法比较简单,采用缩进方式
# print absolute value of an integer:
a = 100
if a >= 0:
print(a)
else:
print(-a)
以#
开头的语句是注释,解释器会忽略掉注释。
其他每一行都是一个语句,当语句以冒号:
结尾时,缩进的语句视为代码块。
但没有规定缩进是几个空格还是Tab。
按照约定俗成的惯例,应该始终坚持使用4个空格的缩进。
缩进的坏处就是“复制-粘贴”功能失效了
请注意,Python程序是大小写敏感的,如果写错了大小写,程序会报错。
小结
Python使用缩进来组织代码块,请务必遵守约定俗成的习惯,坚持使用4个空格的缩进。
在文本编辑器中,需要设置把Tab自动转换为4个空格,确保不混用Tab和空格。