2025年6月5日 星期四 乙巳(蛇)年 三月初九 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

Python 入门教程

时间:12-14来源:作者:点击数:7

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 允许您以以下两种方式执行程序。

  1. 以交互模式运行。从命令行输入 python(python3 on Mac) >>> 并在提示符处逐行运行。
  2. test.py 描述并保存在一个源文件(等,扩展名是py)中,并使用命令行或 shell python test.py(Mac 上的 python3 test.py)。

建议小测试执行1,重复多次的过程执行2。

集成开发环境中的执行方法(IDLE编辑器)

如果使用安装Python的同时安装的集成开发环境(IDE)“IDLE Editor”,可以立即查看执行结果,很方便。

  1. 从开始菜单中,单击“Python 3.9”“IDLE (Python ... 64bit)”,
  2. 启动 IDLE 编辑器,编写程序,将其保存为名称。
  3. 按菜单中的“运行”“运行模块”或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

键盘输入

用于键盘输入inputscanf()它对应于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 语言中的相同。

比较、整个表达式TrueFalse取值的结果。(在 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) # line1行分のデータ
  • 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 语言编写的。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐