Python简要学习教程

Python简要学习教程

1 Python基础性质


重点:Python是一种动态的强类型语言

接下来我们分开理解动态的强类型

1.1 动态

静态类型(static):所有的变量类型必须被显示地声明,因为这些信息在编译阶段就被需要。例如,在 我们熟悉的C++中,

int flag = 1	// 声明变量并赋值

动态类型(dynamic):不需要显示声明,可以直接赋值,因为类型赋值发生在运行阶段。例如,在 Python 中,

flag = 1		# 直接赋值,不需要显示声明变量类型

1.2 强类型

强类型(strong):变量的类型一旦确定,将不能同其他类型的变量进行混合运算。例如,在Python中,

num1 = 1
str1 = 'A'
num1 = num1 + str1		# 是错误的,string类型和整型无法混合运算

弱类型(weak):确定类型变量可以与其他类型混合计算。例如,我们熟悉的C++,

char str1 = 'A';
int num1 = 1;
num1 = num1 + str1;		// 是可以的,'A'是ASCⅡ中的65,num1 = 66

2 Python的特殊类型


2.1 注意

  • Python里没有C++里的char类型
  • Python里只有string,即字符串,而且两边用单引号(’ '),双引号(" ")都行
  • Python里的乘方是两个星号,即a**b 表示: a b a^b ab
  • 取名:变量使用驼峰命名法:this_Is_A_Variable
    • 函数命名全为小写
    • 类的命名首字母大写

2.2 列表

Python里的列表,大家可以适当理解为C++的数组,但没有那么复杂。

它具有一片连续内存空间,相当于数据结构里的顺序表,但它也会转化为单链表

nums1 = [1, 2, 3, 4, 5, 6]
animals = ['dog', 'cat', 'mouse', 'bird']

print(nums1[0])		# 1 打印nums1列表第一个元素
print(animals[-1])	# bird 打印animals列表的倒数第一个元素

注意:

  • 和C++一样,索引都是从0开始
  • 两边要用中括号([ ])括住
  • 索引-1为倒数第一个,索引-2为倒数第二个
  • 列表有很多对应的函数,可以对列表内、列表之间进行操作

列表的操作函数:

  • list()函数:将循环体展开成列表

    list(range(5))	# [0, 1, 2, 3, 4]
    

    (详细关于循环体后面再说)

  • append(x)函数,将元素x添加到列表最后

  • insert(index, x)函数,在列表指定位置index处添加元素x

  • remove(x)函数,移除列表中首次出现的指定元素x

  • count(x)函数,返回列表中x元素出现的次数

2.3 字典

Python字典可以将相关信息关联起来,如:

myphone = {'brand': 'HUAWEI', 'model': 'Mate40', 'price': 1}

print(myphone['brand'])		# HUAWEI
print(myphone['price'])		# 1

里面的结构称为“键 - 值对”,像上面的’brand’、‘model’称为键,而’HUAWEI’、'Mate40’称为值。注意:字典是用大括号({ })进行包围的。

字典也有很多对应的函数和方法进行操作

3 Python的语句差异


  • Python里面的语句是没有分号(;)作为结尾的,换行即为语句的结束

    num1 = num1 + str1	# 这个就是一个语句,没有后面的结束符号
    
  • Python里面也没有通过大括号括起来的语句块和作用域,同一缩进值即为同一语句块作用域

    if flag1 > 1:
        counter+=1			# 其中counter+=1和print(counter)都是一个缩进值,所以他们都是属于
        print(counter)		# if flag1 > 1:下的作用域和语句块
        
    print()
    

3.1 if 语句

Python用的是 if-elif-else 结构:

age = 12

if age < 4 or age = 4:
    price = 0
elif age < 18:
    price = 5
else:
    price = 10
    
print(price)

注意:

  • if 后的逻辑表达式不需要用小括号()括住
  • if 语句后要用冒号(: )
  • 与——’&’ 或——’|’

3.2 for循环

在C++我们可以说for语句是一个循环语句,但在Python里面,我觉得称为遍历语句,或者理解为遍历会比较好一点。

for循环可以理解为有两种,一种是遍历列表,一种是常用控制次数。

注意:和 if 语句一样,有冒号(: ),且要缩进

3.2.1 列表for循环
animals = ['dog', 'cat', 'mouse']

for animal in animals:	# 让animal在列表animals里遍历
    print(animal)
    
# dog
# cat
# mouse
3.2.2 控制次数的for循环
# 循环3次的表达
for i in range(0, 3):	# range()函数返回的是一个对象,这个后来再讲吧
    print(i)
# 0
# 1
# 2

或者:

# 循环3次的表达
for i in range(1, 4):	# range()函数返回的是一个对象,这个后来再讲吧
    print(i)
# 1
# 2
# 3

3.3 while 语句

flag = 1

while flag < 3:
    flag += 1		# Python里没有自增类似i++的表示

while 语句和 if 语句较为相似,可一同记忆

4 函数


一个例子:

def greet_user(username):
    """打印问候语句"""
    print("Hello, " + username + "!")
    return username
    
greet_user('Tom')		# Hello, Tom!

其中,def 为函数定义的关键字,提示解释器其为函数定义,greet_user为函数名称,后面括号内的username为函数参数,注意要冒号且缩进,然后三个双引号是函数说明"""这里是函数功能性说明""",接下来的便是函数体,最后可以返回值。

调用形式和C++类似,函数名(参数)

5 类


class Dog():	# ()中是放继承对象
    '''一个小狗的类'''
    
    def __init__(self, name, age):	# 构造函数
        '''初始化小狗的属性'''
        self.name = name
        self.age = age
        
    def sit(self):		# 类中的函数
        '''模拟小狗坐下'''
        print(self.name + "sits!")
        
Dog1 = Dog()
Dog1.sit()
    

Python的类是用class作为关键词的,一般的类的名称首字母大写,名称后面的括号是用于放置继承对象的。每个类都会有一个构造函数,它的表现形式和C++的不一样,是用分别用两个下划线围住init,即__init__。其他函数的定义便差不多了。

重点:关于self的理解。

self是类中一个代表对象本身的参数,它的意义有点像this指针,指向对象本身中的函数或者参数。而且它也像C++中的private的私有成员,一般只能在内部运转,无法显式地在外面调用。

6 库


Python的库是包含函数和类定义的文件,和C++的头文件有所不同,C++的头文件是函数和类的声明,并不包括定义,而且又要引入命名空间和主函数,相当复杂。在Python,这些都不需要了。

import numpy as np	# 引入numpy库

x = np.pi/2			# 使用numpy库内的pi定义,即兀
answer1 = np.sin(x)	# 调用numpy库内的sin()函数
print(answer1)		# 1

这短短的一句话就足够了,引入numpy库,并在本编辑中用np表示,然后便可以进行调用。

调用的方法和类相似,通过点(.)进行访问,如np.sin()是访问numpy库内的sin()函数

6.1 NumPy库

这个库包含了很多数学计算公式和函数,特别是可以存储和处理大型矩阵。

官方中文网站:https://www.numpy.org.cn/user/quickstart.html

6.1.1 矩阵创建
  • 矩阵自定义:
import numpy as np

mat1 = np.array([[1, 2, 3], [4, 5, 6]])
print(mat1)
# [[1, 2, 3]
#  [4, 5, 6]]

如上例子,可以使用numpy库内的array函数创建矩阵,注意:在array函数参数中,要将创建的矩阵整个抱在中括号([ ])中,然后同一行要用中括号([ ])括起来,不同行间用逗号隔开。因为,array函数还会有其他默认参数可以调节,故矩阵内容只是一个参数

  • 统一字符矩阵
import numpy as np

mat0 = np.zeros((2, 3))		# 创建全0矩阵
mat1 = np.ones((2, 3))		# 创建全1矩阵
print(mat0)
# [[0, 0, 0]
#  [0, 0, 0]]

6.2 Matplotlib库

Matplotlib是一个Python 2D绘图库。

官方中文网站:https://www.matplotlib.org.cn/tutorials/#%E5%BA%8F%E8%A8%80

6.3 Pandas库

一个数据分析库

https://www.pypandas.cn/docs/

6.4 TensorFlow库

一个深度学习库

http://www.tensorfly.cn/tfdoc/tutorials/deep_cnn.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值