Python 入门教程
Python 是一种解释型语言,所以可以一行一行地进入处理,按顺序执行。(C 语言是编译型语言)
你也可以把它写在一个源文件中(扩展名是 .py),一次性全部执行。
本页为那些学过 C 语言的人简要介绍了 Python3。
准备
Windows3默认没有安装Python3,需要从下面下载安装。Sieve Python2 是 MacOSX 的标配,所以下载安装新版本。此外,iOS 还提供了(付费)Python 开发环境,让你在旅途中 也能轻松编程。
- https://www.python.org/ Python 官网
操作检查
安装完成后,尝试在命令提示符下键入以下内容。
Windowsの場合 Z:\> python Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> (<- このようなプロンプトが出ればOK)
Macの場合 % python3 Python 3.7.2 (v3.7.2:9a3ffc0492, Dec 24 2018, 02:44:43) [Clang 6.0 (clang-600.0.57)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> % python (ふるい Python2 が起動してしまうので注意!) Python 2.7.10 (default, Feb 22 2019, 21:55:15) [GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>
无论哪种情况,您都可以通过键入 exit () 退出 Python 输入提示。
程序执行方法(一)
由于 Python 是一种解释型语言,您可以逐行输入和执行程序。启动 python,从键盘依次输入以下红色部分。
>>> print('Hello world!') Hello world! >>> i=5+3 >>> print('i=', i) i= 8 >>>
这样,在解释型语言中,就可以像计算器一样轻松编写计算程序。
程序执行方法(二)
如果处理的过程很长,输入起来很麻烦,错误也很多,所以可以像C语言一样提前写好源文件,一次性全部执行。
以下を test.py として保存
print(' --- Calc. prog. ---')
i = 3 + 5
j = 4 * 5
print('ans = ', i * j)
(実行方法) Z:\> python test.py --- Calc. prog. --- ans = 160
这样,Python 允许您以以下两种方式执行程序。
- 以交互模式运行。从命令行输入
python
(python3 on Mac)>>>
并在提示符处逐行运行。 test.py
描述并保存在一个源文件(等,扩展名是py)中,并使用命令行或 shellpython test.py
(Mac 上的 python3 test.py)。
建议小测试执行1,重复多次的过程执行2。
集成开发环境中的执行方法(IDLE编辑器)
如果使用安装Python的同时安装的集成开发环境(IDE)“IDLE Editor”,可以立即查看执行结果,很方便。
- 从开始菜单中,单击“Python 3.9”“IDLE (Python ... 64bit)”,
- 启动 IDLE 编辑器,编写程序,将其保存为名称。
- 按菜单中的“运行”“运行模块”或F5键执行,查看结果。
编辑器画面 执行结果
集成开发环境中的执行方法(VSCode)
您还可以使用 VSCode 或 VSCodium 编辑源文件并从终端执行它。
屏幕输出基础
控制台输出
# This is comment
print('Hello World!')
print('This is a "pen".')
执行结果 Hello World! This is a "pen".
这就是你所需要的。 #
之后,它被视为评论。//
相当于C++ 。
串括在,"
和 '
由所述一个所包围,如果均匀的开始和结束是OK。( C 中的"
字符串,C 中的'
1 个字符 )
如上例所示,这很方便,因为每次要显示“和”时都不必转义。
print
与 C 语言不同,自动添加换行符。如果您想抑制 this end
,请指定为空,如果end
你设置了任何一个字符串,它每次都会被添加到字符串的末尾。
print('ABC', end='') # ''は,シングルクオーテーション2つ
print('XYZ')
执行结果 ABCXYZ
print
允许您连续输出多个值和变量,以逗号分隔。
这时候会自动插入一个空格作为字符和数字之间的分隔符。指定一个变量来更改分隔符sep
。
print(100, 200, 300)
print(100, 200, 300, sep = ',')
print(100, 200, 300, sep = '----')
print(100, 200, 300, sep = ' | ')
print(100, 200, 300, sep = '') # ''は,シングルクオーテーション2つ
実行例 100 200 300 100,200,300 100----200----300 100 | 200 | 300 100200300
键盘输入
用于键盘输入input
。scanf()
它对应于C语言,但有点不同。
ret = input('Input a number:')
scanf
不同的是,它很方便,因为您可以将输入消息作为 input
的参数传递。
重要提示:键盘输入首先作为字符串返回。在以下示例中,将输入字符串 ret
分配给变量。
str1 = input('input a number 1:')
str2 = input('input a number 2:')
sum = str1 + str2
print(sum)
実行例: input a number 1:10 input a number 2:20 1020
这样输入的字符作为字符串返回,所以显示为1020而不是(预期的)30。
换句话说,代替数字 1000 和 20,显示字母 Ichi Zero Ni Zero。
如果要将其计算为int(), float()
数字,请使用将其转换为数字。(在 C 中atoi, atof, strtol, strtof
)
str1 = input('input a number 1:')
str2 = input('input a number 2:')
sum = int(str1) + int(str2)
print(sum)
実行例: input a number 1:10 input a number 2:20 30
或者,从一开始就将其转换为数值并将其分配给变量。变量名x,y
已更改为。
x = int ( input('input a number 1:') )
y = int ( input('input a number 2:') )
sum = x + y
print(sum)
相反,如果要将数值转换为字符串,请 str(数値)
使用。
变量类型
您可以将其视为变量类型 == 类。由于变量类型是在运行时动态确定的,所以不需要在声明时提前确定类型名称。(首先,您不必在使用变量之前声明它。)
# こんなのもOK.
i = 10 # 整数
print(i)
i = 'Hello' # 文字列
print(i)
执行结果 10 Hello
但是,由于变量的类型在途中变得不清楚,因此type()
使用 use来检查变量的类型。
# 対話モードなら,printは不要.
print( type(10) )
print( type(10.0) )
print( type("10") )
print( type('10') )
执行结果 <class 'int'> <class 'float'> <class 'str'> <class 'str'>
print
所以,如果要同时显示字符串和变量的值:
i = 100 # 型名の指定は不要.
print('Hello World! i=', i)
变量可以是字符串也可以是数值。
i = 'OMG!'
print('Hello World! i =', i)
print(i) # これもOK
print(i + ' --- ' + i) # 文字列の連結
print(i + '1' ) # これはOK
print(i + 1) # これはNG. i は文字なので,数値を足せない
关于错误显示
在执行最后一行时,您应该收到以下错误。由于 Python 是一种解释型语言(不是编译型语言),它从源代码的顶部开始按顺序执行,只有在发生错误时才停止执行。
如果 Traceback (...) 出现这样的消息,则可能发生了某种错误,因此让我们使用行数和内容作为提示来修改源代码。
Traceback (most recent call last): File "C:\....\test.py", line 6, in print(i + 1) TypeError: can only concatenate str (not "int") to str
格式化输出
格式格式
printf
如果要使用 C风格的格式规范,写如下。 %(...)
列出变量的格式与C语言不同,但非常相似。
name = 'Paul'
age = 90
height = 170.5
print('%s is %04d years old, height=%.2fcm.' % (name, age, height))
Paul is 0090 years old, height=170.50cm.
四种算术运算
+, -, *, /, //, %, **
请注意,Python3 和 C 语言之间的划分略有不同。
**
很方便。
print(12 + 5)
print(12 - 5)
print(12 * 5)
print(12 / 5) # 浮動小数.C言語と違う!
print(12 // 5) # 整数で割り算.小数点以下は切り捨て
print(12 % 5)
print(12 ** 5) # べき乗
执行结果 17 7 60 2.4 2 2 248832
条件分支
关系运算符
比较数字(和字符代码)大小的运算符。符号本身与 C 语言中的相同。
比较、整个表达式True
或False
取值的结果。(在 C 语言中,true, false
用非零值和零表示,在 C++ 中。)
<, > <=, >=, ==, !=
print(2 > 3)
print(2 < 3)
执行结果 False True
逻辑运算符
按原样and, or, not
编写逻辑运算符。(在 C 中,它是 &&、||、!)
print(1>2 or 1<2)
print(not True)
执行结果: True False
if
句子
如果条件表达式:
与 C 不同的是,条件表达式不需要用括号 () 括起来,但条件表达式的末尾:
需要一个冒号。
i = int(input('i=?'))
if i > 0:
print('正です.')
elif i < 0:
print('負です.')
else:
print('ゼロです.')
print('おわり.')
执行结果: i=?10 正です. おわり.
elif ...:
else:
如果不需要,可以省略箭头。
这里很重要!
在 python 中,代码块是缩进的,所以如果缩进不正确,就会出错!
在C语言中,{}
如果是括起来,有无缩进都可以。
在 Python 中,缩进不是源代码外观的问题,它是 一种美妙的语言规范,除非缩进写得整齐,否则程序无法正确执行。
重复
while
句子
while 条件表达式:
格式与 if 语句几乎相同。这对于缩进也很重要。
i=0
while i<=10:
print(i)
i+=1 # インクリメント.i++ は,何と文法エラー!
for
句子
对于对象中的变量:
在 C 语言中,计数器变量是用来计算迭代次数的,但在 Python 中,放置的是可迭代的“对象”。一组一些数据,如列表。
很难理解它是什么,但是例如,range
要重复数字的序列号,请使用。range(n)
表示一组值最大为 0,1,2, ..., n-1。
for i in range(5):
print(i)
执行结果 0 1 2 3 4
range
可以写成(初始值,结束值,要增加的值)。如果省略要增加的值,则变为1,可以给出负数。
for i in range(20, 10, -2):
print(i)
执行结果 20 18 16 14 12
即使在多个循环的情况下,也要整齐地写出缩进。
print('---------------------')
for i in range(1,10):
for j in range(1,10):
print(i*j, end=' ')
print('\n')
print('---------------------')
range
注意没有达到最终值!
函数
def func():
print('Hello!') # 字下げ重要
# ↑↑↑↑ ここまでが関数 func() ↑↑↑↑
# ↓↓↓↓ ここから処理が開始される ↓↓↓↓
func()
func()
func()
执行结果 Hello! Hello! Hello!
如何传递参数(即参数)
有序通过。不需要型号名称。
def func(a, b):
print('a=', a, 'b=', b)
func(1, 2)
func(3.2, 4.9)
func('AAA', 'ZZZ')
执行结果 a= 1 b= 2 a= 3.2 b= 4.9 a= AAA b= ZZZ
形式参数是所谓的值引用吗?
更改函数中的参数不会影响调用者。
def func(a):
a=100
a=1
print('a=', a)
func(a)
print('a=', a)
执行结果 a= 1 a= 1
列表
列表就像 C 中的数组,在 Python 中你可以混合不同的类型。
(处理变量的函数一般称为“容器”。)
与普通变量一样,不需要在声明时指定类型。 在
声明中使用方括号[ ]
,并写出用逗号分隔的元素。
与 C 一样,下标从偏移量 0 开始。
a = [10, 20, 30] # リストの初期化
print('a =', a)
print('a[0] =', a[0])
print('a[1] =', a[1])
print('a[2] =', a[2])
执行结果 a = [10, 20, 30] a[0] = 10 a[1] = 20 a[2] = 30
每个元素都可以更改。还有一个“元组”,它的值不能改变。
a = [10, 20, 30]
print('a =', a)
a[0] = 100
print('a =', a)
执行结果 a = [10, 20, 30] a = [100, 20, 30]
它是一个负下标,可以从数组的末尾访问。
a = [10, 20, 30]
print('a = ', a)
print('a[-1] =', a[-1])
print('a[-2] =', a[-2])
print('a[-3] =', a[-3])
执行结果 a = [10, 20, 30] a[-1] = 30 a[-2] = 20 a[-3] = 10
当它超出数组的边界时。
a = [10, 20, 30]
print('a =', a)
print('a[2] =', a[2]) # これはOK
print('a[3] =', a[3]) # ???
print('a[4] =', a[4]) # OMG!
执行结果 a = [10, 20, 30] a[2] = 30 Traceback (most recent call last): File "test.py", line 4, in <module> print('a[3] =', a[3]) # ??? IndexError: list index out of range
我收到一个错误。
列表的内容不必是数字。(对于字符串数组,C 需要“指针数组”)
a = ['Oh', 'My', 'Goodness']
print('a = ', a)
print('a[0] =', a[0])
print('a[1] =', a[1])
print('a[2] =', a[2])
执行结果 a = ['Oh', 'My', 'Goodness'] a[0] = Oh a[1] = My a[2] = Goodness
列表的内容可能是数字和字母的混合。
a = ['Oh', 10, 'My', 20, 'Goodness']
print('a = ', a)
print('len(a) = ', len(a) )
print('a[0] =', a[0])
print('a[1] =', a[1])
print('a[2] =', a[2])
print('a[3] =', a[3])
print('a[4] =', a[4])
执行结果 a = ['Oh', 10, 'My', 20, 'Goodness'] len(a) = 5 a[0] = Oh a[1] = 10 a[2] = My a[3] = 20 a[4] = Goodness
使用列表重复语句
array = [1, 3, 5, 10] # リスト
for i in array: # リストを使った繰り返し文
print(i)
执行结果 1 3 5 10
混合数字和字母的列表是可以的。(你用它来做什么?)
array = ['Oh', 'My', 'goodness', 10, 20] # 混在リスト
for i in array:
print(i)
执行结果 Oh My goodness 10 20
将列表传递给函数
def func(a):
print('a=', a)
a = [1,2,3]
func(a)
执行结果 a = [1,2,3]
列表中,键入名称的大小 len()
,type()
以获得。
a = ['Oh', 10, 'My', 20, 'Goodness']
print('a = ', a)
print('len(a) = ', len(a) )
print(type(a))
print(type(a[0]))
print(type(a[1]))
执行结果 a = ['Oh', 10, 'My', 20, 'Goodness'] len(a) = 5 <class 'list'> <class 'str'> <class 'int'>
整个列表的类型是list,第一个是str,第二个是int
文件输入/输出
文件输出
基本中基本
f = open('sample.txt', 'w') # 引数はCのfopen()と同じ.ファイル名とモード
f.write('Hello World!\nGood Bye!')
f.close()
使用变量作为文件名等。
fname = 'sample.txt'
f = open(fname, 'w') # 'w' は書き込みモード
data = 'Hello World!\nGood Bye!'
f.write(data)
f.close()
文件输入
基本的
fname = 'sample.txt'
f = open(fname, 'r') # 'r' は読み込みモード
line = f.readline() # (改行コードも含め)1行読み込み
print(line)
f.close()
这样,只读取一行,所以:
fname = 'sample.txt'
f = open(fname, 'r')
for line in f:
print(line) # line は1行分のデータ
f.close()
执行结果 Hello World! Good Bye!
print
如果用 with 显示,会多出一个换行码,所以会创建一个空行。
如何将所有行读入列表
这样,读取和处理就可以分开了。如果文件很大怎么办?
f = open('sample.txt', 'r')
lines = f.readlines()
f.close()
print(lines)
执行结果 ['Hello World!\n', 'Good Bye!']
错误处理
文件处理会导致某种错误。
要写入的文件被另一个应用程序锁定。
没有要读取的文件。这样的。
“异常处理”用于错误处理。此处省略详细说明。
fname = 'non-existing-file.txt' # 存在しないファイル名
try:
f = open(fname, 'r')
lines = f.readlines()
except:
print('読み込めなーい')
else:
print('読み込みました.')
print(lines)
f.close()
finally:
print('おしまい.')
执行结果: 読み込めなーい おしまい.
除此之外
此处不再详细解释,更详细的解释请参考官方的“教程”、“语言参考”和“库参考”。
此外,还有许多其他重要的编程主题。
如果你有兴趣,让我们积极研究互联网站点和书籍来学习。
- 各种数据结构(列表、元组、字典等)
- 班级
- 异常处理
可能最先使用的模块和包
在 Python 中,最好使用现有包的良好组合,而不是自己编写算法。为了加速,包的内部处理是用 C 语言编写的。
- 方便的包,例如 numpy 多维数组
- 用于科学和工程的 scipy 包
- matplotlib 用于 绘制 各种图形。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: umount.cifs 中文手册
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论