Python First Lesson

前面的博文中,我们已经成功搭建了 Python 学习以及开发环境。这里,我们来完成我们的 Python 第一课:Hello Python’s World

Hello World

交互式编程只是用来玩玩而已,真正的项目开发还是需要编写源文件的。

首先我们给出第一个使用 Python 脚本语言编写的代码文件 HelloWorld.py,代码内容如下:

1
print("Welcome to Python world!")

编写 Python 源文件

在 Python 的交互式命令行环境下写程序,好处是一边编写代码一边就能得到结果,坏处是没法保存,下次还想运行的时候,还得再敲一遍。所以一般我们 使用交互式环境进行学习测试,而不是开发。

而实际学习以及工作时,通常是使用一个文本编辑器来写源代码,写完了,将其保存为一个文件(Python 源文件),这样,程序就可以反复运行了。

Python 源文件(以 .py 后缀结尾)是一种纯文本文件,内部没有任何特殊格式和字符(例如 BOM >>> 标识文件编码格式的头字符),你需要选择一款合适的文本编辑器来打开、编辑它。

那么问题来了:文本编辑器到底哪家强???

这里我们推荐两款文本编辑器:Sublime Text && Visual Studio Code

这两款文本编辑器都是免费、开源的,甚至为了方便编码可以内嵌各种丰富的插件,方便之后的使用拓展。

注意,不能使用写字板、Word、WPS 等排版工具编写 Python 源文件,其保存的不是纯文本文件,有内置的特殊格式,这些会让代码变得“乱七八糟”,影响 Python 解释器的执行。

使用 Windows 下的记事本,保存时记得选择 【不带 BOM 的 Utf-8 编码】 形式保存,否则会在文件头带有特殊字符。不管是否影响 Python 解释器运行,这对使用来说是不合理的。


选择好源文件编辑器后,来看创建和编写 Python 源文件的要求:

源文件的命名以及后缀

文件名一般是 英文字母、数字和下划线的组合,文件后缀必须为 .py

任何编程语言的源文件都有特定的后缀,例如:

  • C 语言源文件的后缀是:.c
  • C++ 源文件的后缀是:.cpp
  • JavaScript 源文件的后缀是:.js
  • C# 源文件的后缀是:.cs
  • Java 源文件的后缀是:.java

文件后缀只是用来区分不同的编程语言,并不会导致源文件的内部格式发生变化,源文件还是纯文本的。编辑器、编译器(解释器)和用户(程序员)都依赖后缀来区分当前源文件属于哪种编程语言。


源文件的编码格式

Python 源文件是一种纯文本文件,因此会涉及到文件编码格式的问题,也就是 磁盘上,使用哪种字符编码来存储源代码文件?!!

Python 3.x 已经将 UTF-8 作为默认的源文件编码格式,上面推荐的两款编辑器都默认支持 UTF-8 编码。

如果你对编码格式不了解的话,请猛击链接学习 >>> 【编程基础之编码详解】。


运行源文件

安装好文本编辑器,了解了 Python 源文件编写注意事项,以及源文件的编码格式问题之后,

我们将本章节开头给出的代码内容写入文件并命名为 HelloWorld.py。然后在终端(Terminal or Shell)下进行运行:

1
2
3
4
5
6
# 先进入源文件所在目录:
$ cd ~/Desktop

# [ python: 调用 Python 解释器 ] 解释执行脚本文件 HelloWorld.py
$ python HelloWorld.py
Welcome to Python world!

期待你成功了~~~

👇👇👇 你需要注意: 👇👇👇

你必须在脚本存放目录下执行,如果当前目录下没有 HelloWorld.py 这个文件,运行 python HelloWorld.py 就会报错:

1
2
$ python HelloWorld.py
python: can't open file 'hello.py': [Error 2] No such file or directory

当然,运行前我们还要保证源文件的可执行权限:

1
$ chmod +x HelloWorld.py

| ================================================== Split Line =============================================== |

Linux && Mac 下支持直接运行 Python 源文件 >>>>>

每次执行源文件都需要调用解释器(python.exe),我们能不能像 .exe 文件那样直接运行 .py 文件呢?在 Windows 上是不行的,但是,在 Mac 和 Linux 上是可以的,方法是在 .py 文件的第一行加上一个特殊的注释:

1
2
3
#!/usr/bin/env python3

print("Welcome to Python world!")

或者:

1
2
3
#!/usr/bin/python3

print("Welcome to Python world!")

上面的 #! 是一种标记,用来标识当前脚本将使用什么解释器进行执行!!!

运行:

1
2
3
# Linux&Unix 下直接运行脚本文件:HelloWorld.py
$ ./HelloWorld.py
Hello, Python World!

Windows 系统不区分大小写,在 Windows 平台上输入源文件路径时可以不用注意大小写;但是类 Unix 系统(Mac OS X、Linux 等)都是严格区分大小写!!!


下面我们来看 Python 中最基本的语法 –> 输入输出(Input/Output):

Input && Output Function

输出(Output)是我们接触到的第一个 Python 程序语句,例如 print("Welcome to Python world!")

Output

Python 使用 print() 函数在屏幕上输出一段文本,输出结束后会自动换行。

[1] >>> 输出字符串

print() 语句在括号中加上一串字符串(字符串要用 双或单 引号括起来,无区别),就可以向屏幕上输出指定的文字。字符串中可以包含英文、数字、中文以及各种符号。

比如输出 Hello, welcome to Python world!,用代码实现如下:

1
2
3
# print() 输出字符串类型:
example = "Hello, welcome to Python world."
print(example, type(example))

[2] >>> 输出其它 Python 数据对象

当然,print() 语句也可以输出其它(Python 数据)对象,如数字、列表、元组、字典、集合等:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# print() 输出数字类型:
example = 123
print(example, type(example))
# print() 输出元组类型:
example = (1, 2, 3)
print(example, type(example))
# print() 输出列表类型:
example = [1, "python", 123]
print(example, type(example))
# print() 输出字典类型:
example = {1: "one", 2: "two", 3: "three"}
print(example, type(example))
# print() 输出集合类型:
example = {0, 1, 2, 3}
print(example, type(example))

[1] >>> 英文半角状态的逗号(,

print() 函数也可以同时接受多个字符串(或多个 Python 数据对象),用逗号 “,” 隔开,就可以连成一串输出。并且每遇到一个逗号 “,” 会自动输出一个空格(sep 参数定义,默认空格)。输出样式如下:

1
2
3
4
5
>>> print('Welcome to Python world.','It is good.','why?')
Welcome to Python world. It is good. why?

>>> print('First', 8888, 1.23, True)
First 8888 1.23 True

注意,使用 逗号(,)连接符的对象可以是任意的 Python 数据对象,使用 sep 参数来指定连接端子(默认空格)。

[2] >>> 英文半角状态的加号(+

除了使用逗号 “,” 隔开连接一串输出外,还可以使用【连接符 “+”】 来连成一串字符串输出。

1
2
3
4
5
>>> print('Hello ' + 'LiHua,' + ' welcome to Python world.')
Hello LiHua, welcome to Python world.

>>> print('First' + str(8888) + str(1.23) + str(True))
First88881.23True

注意:和逗号 “,” 连接的区别在于 —> 连接处不含连接符(不可指定),并且只可拼接(支持加法 [+] 操作的)同类型数据(字符串,元组,列表,数字等)。


认真的同学肯定发现了:print() 函数之后 Python 系统会自动换行。如下面的代码:

1
2
print("Hello, welcome to python world.")
print("This is a print() function test.")

运行输出结果如下:

1
2
Hello, welcome to python world.
This is a print() function test.

那么,当我们不想 print() 之后自动换行,可以使用:end 参数。

end 参数可以用于指定 print 之后的分隔符,事实上,你可以看作当不调用 end 指定其它分隔符时,end 的默认分隔符是 :换行(“\n”)。

1
2
print("Hello, welcome to python world.", end=";")
print("This is a print() function test.")

运行输出结果如下:

1
Hello, welcome to python world.;This is a print() function test.

最后,我们给出 print() 函数的更一般形式:

1
2
3
4
5
6
7
# print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

# Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments:
# file: a file-like object (stream); defaults to the current sys.stdout (Screen Output).
# sep: string inserted between values, default a space.
# end: string appended after the last value, default a newline.
# flush: whether to forcibly flush the stream.

其它常用的是,可以令 file=file-like object 来将 print 打印内容写入文件!!!如下:

1
2
3
4
word = "hello, welcome to python world"
f = open('text.txt', 'w+')
print(word, file=f)
f.close()

Input

现在,我们已经可以用 print() 输出你想要的结果了。但是,如果要让用户从电脑的输入设备(键盘)输入一些字符怎么办???

Python提供了一个 input(),可以让用户输入字符串,并存放到一个变量里。比如输入用户的名字:

1
2
3
>>> name = input()
Michael
>>>

输入完成后,我们查看一下:

1
2
>>> print(name)
Michael

input() 函数友好的用户输入提醒

通常我们为了程序的友好性,需要提示信息来告诉用户:“嘿,赶紧输入你的名字”。

input() 还可以让你显示一个字符串来提示用户。于是我们编辑一个新的脚本 Helloxxx.py ,内容如下:

1
2
name = input("Please enter your name:")
print('Hello,', name)

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

1
2
3
$ python Helloxxx.py
please enter your name: Michael
hello, Michael

input() 函数的返回值类型

对于 input() 函数来说,不管我们输入的是什么,不管你输入的是整数 1234,还是字符串,input() 函数的返回值都是 【字符串】 类型的。于是:

1
2
3
4
5
6
7
8
9
10
11
choice = input('请输入您的选择 [1 or 2]:')
#变量赋值

# 注意这里:
if choice == 1:
#条件判断:条件1
print('霍格沃茨欢迎您的到来。')

else:
#条件判断:其他条件
print('您可是被梅林选中的孩子,我们不接受这个选项。')

你可以尝试一下输入1:

1
2
输入您的选择:1
您可是被梅林选中的孩子,我们不接受这个选项。

怎么办????此时我们需要对 input() 返回值进行类型转换(这里不用深究类型转换,见后续博文):

1
2
3
4
5
6
7
8
9
10
11
12
# 输入被转换为数:
choice = int(input('请输入您的选择 [1 or 2]:'))
#变量赋值

# 注意这里:
if choice == 1:
#条件判断:条件1
print('霍格沃茨欢迎您的到来。')

else:
#条件判断:其他条件
print('您可是被梅林选中的孩子,我们不接受这个选项。')

或者:

1
2
3
4
5
6
7
8
9
10
11
# 变量赋值
choice = input('请输入您的选择 [1 or 2]:')

# 注意这里:
if choice == '1':
#条件判断:条件1
print('霍格沃茨欢迎您的到来。')

else:
#条件判断:其他条件
print('您可是被梅林选中的孩子,我们不接受这个选项。')

Author

Waldeinsamkeit

Posted on

2018-01-04

Updated on

2024-01-13

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.