Python 入门教程

发布于 2021-10-19 20:43:09 字数 14049 浏览 1303 评论 0

Python 是一种解释型语言,所以可以一行一行地进入处理,按顺序执行。(C 语言是编译型语言)
你也可以把它写在一个源文件中(扩展名是 .py),一次性全部执行。

本页为那些学过 C 语言的人简要介绍了 Python3。

准备

Windows3默认没有安装Python3,需要从下面下载安装。Sieve Python2 是 MacOSX 的标配,所以下载安装新版本。此外,iOS 还提供了(付费)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)     # 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 语言编写的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

亚希

文章 0 评论 0

cyp

文章 0 评论 0

北漠

文章 0 评论 0

11223456

文章 0 评论 0

坠似风落

文章 0 评论 0

游魂

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文