Python入门

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: Python是一种通用编程语言,其在科学计算和机器学习领域具有广泛的应用。如果我们打算利用Python来执行机器学习,那么对Python有一些基本的了解就是至关重要的。本Python入门系列体验就是为这样的初学者精心准备的。

Python入门

1. 登录PAI-DSW平台

登录PAI-DSW平台

1. 登录PAI-DSW探索者版(https://dsw-dev.data.aliyun.com/)。

说明: 目前DSW探索者版仅支持阿里云主账号免费使用。

如果你看到一下页面,则表示已经成功登录PAI-DSW平台。

2. 在Launcher页签,定位到Notebook区域,单击Python3。

返回结果如下图所示图所示,即可开始输入代码。

2. 添加注释、声明变量和变量赋值

添加注释、声明变量和变量赋值

1. 注释。

Python中的注释有单行注释和多行注释。

Python中单行注释以#开头。在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

#这是一个注释
print("Hello world")
#Hello world

返回结果如下图所示图所示。

多行注释用三个半角单引号(''')或者三个半角双引号(""")将注释括起来。

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

'''
这是多行注释,用三个单引号
这是多行注释,用三个单引号
这是多行注释,用三个单引号
'''
print("Hello china")
#Hello china
"""
这是多行注释,用三个双引号
这是多行注释,用三个双引号
这是多行注释,用三个双引号
"""
print("hello china")
#hello china

返回结果如下图所示。

2. 声明变量和变量赋值。

变量命名规则:

变量名可以包括字母、数字、下划线,但变量名不能以数字开头。

Python变量名是大小写敏感的。例如,foo和Foo不一样。

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

teacher = "阿里云的程序人生"
print(teacher) # 阿里云的程序人生
first = 2
second = 3
third = first + second
print(third) # 5
myTeacher = "阿里云的程序人生"
yourTeacher = "阿里云的程序人生"
ourTeacher = myTeacher + ',' + yourTeacher
print(ourTeacher)# 阿里云的程序人生,阿里云的程序人生

返回结果如下图所示。




3. Python的数据类型与转换

Python的数据类型与转换

1. 定义整型变量。

类型

名称

示例

int

整型

<class'int'>-876,10

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

a = 1031
print(a,type(a))

返回结果如下图所示,通过print()可看出a的值,以及类(class)是int。

2. 定义浮点型变量。

类型

名称

示例

float

浮点型

<class'float'>3.149,11.11

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

print(1,type(1))
# 1 <class'int'>
print(1.,type(1.))
# 1.0 <class'float'>
a = 0.00000023
b = 2.3e-7
print(a) #2.3e-07
print(b) #2.3e-07

返回结果如下图所示,可到看出变量的值和类型。

3. 定义布尔型变量。

布尔(boolean)型变量只能取两个值,True和False。

类型

名称

示例

bool

布尔型

<class'bool'>True,False

当把布尔型变量用在数字运算中,用1和0代表True和False。

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

print(True + True) #2
print(True + False) #1
print(True * False) #0

返回结果如下图所示。

您除了直接给变量赋值True和False,还可以用bool(X)来创建变量,其中X可以是:

基本类型:整型、浮点型、布尔型。

容器类型:字符串、元组、列表、字典和集合。

a. bool作用在基本类型变量:bool(X)中的X是整型数0或者浮点型数0.0时,则bool(X)是False,其余情况为True。在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

返回结果如下图所示。

b. bool作用在容器类型变量:bool(X)中的X是空的变量时,则bool(X)就是False,其余情况就是True。

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

print(type(''), bool(''), bool('Python'))
# <class'str'> False True
print(type(()), bool(()), bool((10,)))
# <class'tuple'> False True
print(type([]), bool([]), bool([1,2]))
# <class'list'> False True
print(type({}), bool({}), bool({'a':1,'b':2}))
# <class'dict'> False True
print(type(set()),bool(set()),bool({1,2}))
# <class'set'>FalseTrue

返回结果如下图所示。

4. 数据类型的转换。

转换为整型int(x, base=10)。

转换为字符串str(object='')。

转换为浮点型float(x)。在Untitled.ipynb页签中,输入如下Python语句,单击 云心按钮。

print(int('520')) #520
print(int(520.52)) #520
print(float('520.52')) #520.52
print(float(520)) #520.0
print(str(10+10)) #20
print(str(10.1+5.2)) #15.3

返回结果如下图所示。

4. 使用Python运算符

使用Python运算符

1. 使用操作运算符。

操作符

名称

示例

+

1+1

-

2-1

*

3*4

/

3/4

//

整除(地板除)

3//4

%

取余

3%4

**

2**3

在Untitled.ipynb页签中,输入如下七条Python语句,单击 运行按钮。

print(1+1) # 2
print(2-1) # 1
print(3*4) # 12
print(3/4) # 0.75
print(3//4) # 0
print(3%4) # 3
print(2**3) # 8

返回结果如下图所示。

2. 使用比较运算符。

操作符

名称

示例

大于

2>1

>=

大于等于

2>=4

小于

1<2

<=

小于等于

5<=2

==

等于

3==4

!=

不等于

3!=5

在Untitled.ipynb页签中,输入如下六条Python语句,单击 运行按钮。

print(2>1) # True
print(2>=4) # False
print(1<2) # True
print(5<=2) # False
print(3==4) # False
print(3!=5) # True

返回结果如下图所示。

3. 使用逻辑运算符。

操作符

名称

示例

and

(3>2)and(3<5)

or

(1>3)or(9<2)

not

not(2>1)

在Untitled.ipynb页签中,输入如下三条Python语句,单击 运行按钮。

print((3>2)and(3<5)) # True
print((1>3)or(9<2)) # False
print(not(2>1)) # False

返回结果如下图所示

4. 位运算符。

操作符

名称

示例

~

按位取反

~4

&

按位与

4&5

|

按位或

4|5

^

按位异或

4^5

<<

左移

4<<2

>>

右移

4>>2

说明:有关二进制的运算,请您参见下一小节的讲解。

在Untitled.ipynb页签中,输入如下八条Python语句,单击 运行按钮。

print(bin(4)) # 0b100
print(bin(5)) # 0b101
print(bin(~4),~4) # -0b101-5
print(bin(4&5),4&5) # 0b1004
print(bin(4|5),4|5) # 0b1015
print(bin(4^5),4^5) # 0b11
print(bin(4<<2),4<<2) # 0b1000016
print(bin(4>>2),4>>2) # 0b11

返回结果如下图所示。

5. 三元运算符。

三元运算符的语法如下。

exp1 if condition else exp2

说明 :condition是判断条件,exp1和exp2是两个表达式。如果condition成立(结果为真),就执行exp1,并把exp1的结果作为整个表达式的结果;如果condition不成立(结果为假),就执行exp2,并把exp2的结果作为整个表达式的结果。

在Untitled.ipynb页签中,输入如下一条Python语句,单击 运行按钮。

x, y=4, 5
small = x if x < y else y
print(small) # 4

返回结果如下图所示。

6. 使用in和not in运算符。

操作符

名称

示例

in

存在

A' in ['A','B','C']

not in

不存在

'h' not in ['A','B','C']

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

letters=['A','B','C']
if 'A' in letters:
    print('A'+'exists')
if 'h' not in letters:
    print('h'+'notexists')

返回结果如下图所示。

7. is和is not运算符。

操作符

名称

示例

is

"hello" is "hello"

is not

不是

"hello" is not "hello"

说明:

is、is not对比的是两个变量的内存地址。

==、!=对比的是两个变量的值。

比较的两个变量,指向的都是地址不可变的类型(str等),那么is、is not和==、!=是完全等价的。

比较的两个变量,指向的是地址可变的类型(list,dict等),那么is、is not和==、!=不是等价的。

a. 比较的两个变量均指向不可变类型。

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

a = "hello"
b = "hello"
print(a is b, a==b) # True True
print(a is not b, a!=b) # False False

返回结果如下图所示。

b. 比较的两个变量均指向可变类型。

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

a = ["hello"]
b = ["hello"]
print(a is b, a==b) # False True
print(a is not b, a!=b) # True False

返回结果如下图所示。


Python的条件语句

1. if条件语句,语法如下。

#if expression:
    #expr_true_suite

说明:

if语句的expr_true_suite代码块只有当条件表达式expression结果为真时才执行,否则将继续执行紧跟在该代码块后面的语句。

单个 if 语句中的expression条件表达式可以通过布尔操作符and、or和not实现多重条件判断。

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

if 2 > 1 and not 2 > 3:
    print('Correct Judgement!')

返回结果如下图所示。

2. if else条件语句,语法如下。

#if expression:
    #expr_true_suite
#else:
    #expr_false_suite

说明:

Python提供与if搭配使用的else,如果if语句的条件表达式结果布尔值为假,那么程序将执行else语句后的代码。

a. 在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

temp = input("猜一猜小姐姐想的是哪个数字?")
guess = int(temp) # input 函数将接收的任何数据类型都默认为 str。
if guess == 666:
    print("你太了解小姐姐的心思了!")
    print("哼,猜对也没有奖励!")
else:
    print("猜错了,小姐姐现在心里想的是666!")
print("游戏结束,不玩儿啦!")

b. 在下方框中,输入任意数字,例如666,回车。

返回结果如下图所示。

3. if elif else条件语句,语法如下。

#if expression1:
    #expr1_true_suite
#elif expression2:
    #expr2_true_suite
    .
    .
#elif expressionN:
    #exprN_true_suite
#else:
    #expr_false_suite

说明:

elif语句即为else if,用来检查多个表达式是否为真,并在为真时执行特定代码块中的代码。

a. 在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

temp = input('请输入成绩:')
source = int(temp)
if 100 >= source >= 90:
    print('A')
elif 90 > source >= 80:
    print('B')
elif 80 > source >= 60:
    print('C')
elif 60 > source >= 0:
    print('D')
else:
    print('输入错误!')

5. Python的条件语句

b. 在下方框中,输入任意数字,例如70,回车。

返回结果如下图所示。

4. assert关键词。我们称assert为“断言”,当这个关键词后边的条件为False时,程序自动崩溃并抛出AssertionError的异常。只有后边的条件为True时才能让程序正常工作。

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

assert 10 > 5
assert 3 > 7

返回结果如下图所示,您可以看到assert 10 > 5Python语句可以正常运行,assert 3 > 7语句使程序崩溃并跑出AssertionError的一场。

6. Python的循环语句

Python的循环语句

1. while循环语句。

while语句最基本的形式包括一个位于顶部的布尔表达式,一个或多个属于while代码块的缩进语句。while循环的代码块会一直循环执行,直到布尔表达式的值为False。如果布尔表达式不带有<、>、==、!=、in、not in等运算符,仅仅给出数值之类的条件,也是可以的。当while后写入一个非零整数时,视为真值,执行循环体;写入0时,视为假值,不执行循环体。您也可以写入str、list或任何序列,长度非零则视为真值,执行循环体;否则视为假值,不执行循环体。while语句语法如下。

#while 布尔表达式:
    #代码块

a. 在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

count = 0
while count < 3:
    temp = input("猜一猜小姐姐想的是哪个数字?")
    guess = int(temp)
    if guess > 8:
        print("大了,大了")
    else:
        if guess == 8:
            print("你太了解小姐姐的心思了!")
            print("哼,猜对也没有奖励!")
            count = 3
        else:
            print("小了,小了")
    count = count + 1
print("游戏结束,不玩儿啦!")

在下方框中,输入任意数字,回车。

返回结果如下图所示。

2. while else循环语句。

当while循环正常执行完的情况下,执行else输出,如果while循环中执行了跳出循环的语句,例如break,将不执行else代码块的内容。while else循环语句语法如下。

#while 布尔表达式:    
    #代码块
#else:
    #代码块

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

count = 0
while count < 5:
    print("%d is  less than 5" % count)
    count = count + 1
else:
    print("%d is not less than 5" % count)

返回结果如下图所示。

3. for循环语句。

for循环是迭代循环,在Python中相当于一个通用的序列迭代器,可以遍历任何有序序列,例如str、list、tuple等,也可以遍历任何可迭代对象,如dict。每次循环,迭代变量被设置为可迭代对象的当前元素,提供给代码块使用。for循环语句语法如下。

#for 迭代变量 in 可迭代对象:
    #代码块

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

for i in 'ILoveAliyun':
    print(i, end=' ')  #不换行输出。

返回结果如下图所示。

4. for else循环。

当for循环正常执行完的情况下,执行else输出,如果for循环中执行了跳出循环的语句,例如break,将不执行else代码块的内容,与while else语句一样。for else循环语法如下。

#for 迭代变量 in 可迭代对象:
    #代码块
#else:
    #代码块

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

for num in range(10, 20):  # 迭代10到20之间的数字。
    for i in range(2, num):  # 根据因子迭代。
        if num % i == 0:  # 确定第一个因子。
            j = num / i  # 计算第二个因子。
            print('%d 等于 %d * %d' % (num, i, j))
            break  # 跳出当前循环。
    else:  # 循环的else部分。
        print(num, '是一个质数')

返回结果如下图所示。

5. range()函数。

range()函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。range()函数语法如下。

range(start, stop[, step])

参数说明:

start: 计数从start开始。默认是从0开始。例如:range(5)等价于range(0,5).

stop: 计数到stop结束,但不包括stop。例如:range(0,5)是[0, 1, 2, 3, 4]没有5.

step:步长,默认为1。例如:range(0,5)等价于range(0, 5, 1).

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

for i in range(2, 9):  #不包含9。
    print(i)

返回结果如下图所示。

6. enumerate()函数。

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。enumerate()函数语法如下。

enumerate(sequence,[start=0])

参数说明:

sequence:一个序列、迭代器或其他支持迭代的对象。

start:下标起始位置。

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

seasons = ['Spring', 'Summer', 'Fall', 'Winter']
lst = list(enumerate(seasons))
print(lst)
# [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
lst = list(enumerate(seasons, start=1))  # 下标从1开始。
print(lst)
# [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

返回结果如下图所示。

7. break语句。

break语句可以跳出当前所在层的循环。

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

import random
secret = random.randint(1, 10) #[1,10]之间的随机数
while True:
    temp = input("猜一猜小姐姐想的是哪个数字?")
    guess = int(temp)
    if guess > secret:
        print("大了,大了")
    else:
        if guess == secret:
            print("你太了解小姐姐的心思了!")
            print("哼,猜对也没有奖励!")
            break
        else:
            print("小了,小了")
print("游戏结束,不玩儿啦!")

在下方框中,输入任意数字,并按回车。

返回结果如下图所示。

8. continue语句。

continue终止本轮循环并开始下一轮循环。

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

for i in range(10):
    if i % 2 != 0:
        print(i)
        continue
    i += 2
    print(i)

返回结果如下图所示。

9. pass语句。

pass语句的意思是“不做任何事”,如果您在需要有语句的地方不写任何语句,那么解释器会提示出错,而 pass 语句就是用来解决这些问题的。

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

def a_func():

返回结果如下图所示,您可以看到解释器报错。

在上一步的Python语句加上pass,单击 运行按钮。

def a_func():
    pass

返回结果如下图所示,您可以看到解释器发生报错。


7. Python的异常处理

Python的异常处理

异常就是运行期检测到的错误。计算机语言针对可能出现的错误定义了异常类型,某种错误引发对应的异常时,异常处理程序将被启动,从而恢复程序的正常运行。

1. try except语句。

try except语句语法如下。

#try:
    #检测范围
#except Exception[as reason]:
    #出现异常后的处理代码

a. try 语句按照如下方式工作:

首先,执行try子句(在关键字try和关键字except之间的语句)

如果没有异常发生,忽略except子句,try子句执行后结束。

如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略。如果异常的类型和except之后的名称相符,那么对应的except子句将被执行。最后执行try-except语句之后的代码。

如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中。

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

try:
    f = open('test.txt')
    print(f.read())
    f.close()
except OSError:
    print('打开文件出错')

返回结果如下图所示。

b. 一个try语句可能包含多个except子句,分别来处理不同的特定的异常,并且最多只有一个分支会被执行。

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

try:
    int("abc")
    s = 1 + '1'
    f = open('test.txt')
    print(f.read())
    f.close()
except OSError as error:
    print('打开文件出错\n原因是:' + str(error))
except TypeError as error:
    print('类型出错\n原因是:' + str(error))
except ValueError as error:
    print('数值出错\n原因是:' + str(error))

返回结果如下图所示。

2. try except finally语句。

在try except finally语句中,不管try子句里面有没有发生异常,finally子句都会执行。

说明:

如果一个异常在try子句里被抛出,而又没有任何的except把它截住,那么这个异常会在finally子句执行后被抛出。

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

def divide(x, y):
    try:
        result = x / y
        print("result is", result)
    except ZeroDivisionError:
        print("division by zero!")
    finally:
        print("executing finally clause")
divide(2, 1)
# result is 2.0
# executing finally clause
divide(2, 0)
# division by zero!
# executing finally clause
divide("2", "1")
# executing finally clause
# TypeError: unsupported operand type(s) for /: 'str' and 'str'

返回结果如下图所示。

3. try except else语句。

如果在try子句执行时没有发生异常,Python将执行else语句后的语句。

说明:

else语句的存在必须以except语句的存在为前提,在没有except语句的try语句中使用else语句,会引发语法错误。

#try:
    #检测范围
#except:
    #出现异常后的处理代码
#else:
    #如果没有异常执行这块代码

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

try:
    fh = open("testfile.txt", "w")
    fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
    print("Error: 没有找到文件或读取文件失败")
else:
    print("内容写入文件成功")
    fh.close()

返回结果如下图所示。

4. raise语句。

您可以使用Python中的raise语句抛出一个指定的异常。

在Untitled.ipynb页签中,输入如下Python语句,单击 运行按钮。

try:
    raise NameError('HiThere')
except NameError:
    print('An exception flew by!')

返回结果如下图所示。

实验链接:https://developer.aliyun.com/adc/scenario/2f4865bdb65b40ebb4f85d003e30f273

相关实践学习
使用PAI+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
7天前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
77 7
|
2月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
207 1
|
3月前
|
API 数据安全/隐私保护 开发者
Python自定义异常:从入门到实践的轻松指南
在Python开发中,自定义异常能提升错误处理的精准度与代码可维护性。本文通过银行系统、电商库存等实例,详解如何创建和使用自定义异常,涵盖异常基础、进阶技巧、最佳实践与真实场景应用,助你写出更专业、易调试的代码。
120 0
|
3月前
|
IDE 开发工具 数据安全/隐私保护
Python循环嵌套:从入门到实战的完整指南
循环嵌套是Python中处理多维数据和复杂逻辑的重要工具。本文通过实例讲解嵌套循环的基本用法、常见组合、性能优化技巧及实战应用,帮助开发者掌握其核心思想,避免常见错误,并探索替代方案与进阶方向。
177 0
|
30天前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
22天前
|
存储 Java 调度
Python定时任务实战:APScheduler从入门到精通
APScheduler是Python强大的定时任务框架,通过触发器、执行器、任务存储和调度器四大组件,灵活实现各类周期性任务。支持内存、数据库、Redis等持久化存储,适用于Web集成、数据抓取、邮件发送等场景,解决传统sleep循环的诸多缺陷,助力构建稳定可靠的自动化系统。(238字)
231 1
|
2月前
|
调度 数据库 Python
Python异步编程入门:asyncio让并发变得更简单
Python异步编程入门:asyncio让并发变得更简单
140 5
|
5月前
|
Python
Python字符串格式化利器:f-strings入门指南
Python字符串格式化利器:f-strings入门指南
279 80
|
2月前
|
数据采集 存储 XML
Python爬虫入门(1)
在互联网时代,数据成为宝贵资源,Python凭借简洁语法和丰富库支持,成为编写网络爬虫的首选。本文介绍Python爬虫基础,涵盖请求发送、内容解析、数据存储等核心环节,并提供环境配置及实战示例,助你快速入门并掌握数据抓取技巧。

推荐镜像

更多
下一篇
开通oss服务