[Python] 【笔记】python入门教程

Python基础教程

目录

  • 引言
  • 一、什么是Python
    • 1.1 python介绍
    • 1.2 python语法
  • 二、Python的变量、类型及运算
    • 2.1 变量的定义
    • 2.2 变量的类型
    • 2.3 运算符
    • 2.3.1 算术运算符
    • 2.3.2 比较运算符
    • 2.3.3 赋值运算符
    • 2.3.4 逻辑运算符
    • 2.3.5 位运算符
    • 2.3.6 成员运算符
    • 2.3.7 身份运算符
    • 2.3.8 运算符优先级(略)
    • 2.4 字符串
    • 2.4.1 字符串访问
    • 2.4.2 字符串拼接
    • 2.4.3 字符串运算
    • 2.4.4 常用内置函数
    • 2.5 列表
    • 2.5.1 列表访问、拼接、运算
    • 2.5.2 常用内置函数
    • 2.6 元组
    • 2.6.1 元组的特殊性质
    • 2.6.2 元组访问、拼接、运算
    • 2.7 字典
    • 2.7.1 字典定义
    • 2.7.2 字典值访问
    • 2.7.3 字典修改
    • 2.7.4 字典删除
    • 2.7.5 字典特性
  • 三、标识符及关键字
  • 四、Python输入输出
    • 4.1 输入
    • 4.2 输出
    • 4.2.1 普通输出
    • 4.2.2 格式化输出
  • 五、条件语句和循环语句
    • 5.1 if
    • 5.2 while
    • 5.3 for
    • 5.4 break、continue和pass
    • 5.4.1 break
    • 5.4.2 continue
    • 5.4.3 pass
  • 六、函数
    • 6.1 函数定义
    • 6.2 函数调用
    • 6.3 参数传递
    • 6.4 参数类型(略)
    • 6.5 作用域
  • 七、模块导入
  • 八、文件I/O
    • 8.1 open()方法
    • 8.2 文件操作模式
    • 8.3 使用方法
  • 九、异常抛出
    • 9.1 结构
    • 9.2 常见异常
  • 十、Python基础挑战题!
  • 十一、学习网站
  • 十二、总结
    • *

0、引言

本教程参考了十一、学习网站中的python教程,结合作者日常使用python的经验,整理、筛选了基础和常用的知识点,以达到小白快速入门的目的。由于时间仓促,本教程必然有很多疏漏,或是重点不到位的地方,还请多多包涵!  

本教程适用于无基础急需入门小白,看完本文即可上手python基础应用
python实用库:

  • numpy(数学)
  • pygame(小游戏制作)
  • opencv-python(计算机视觉)
  • requests(网络爬虫)
  • re(正则表达式)
  • ···

一、什么是Python

1.1 python介绍

Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为很多平台上写脚本和快速开发应用的编程语言, 随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python 也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。

优点:

  • 简单、易学、易读、易维护
  • 用途广泛
  • 库丰富、代码规范(PEP 8规范)
  • 高层语言、可移植性强、解释性、可扩展性
  • 面向对象

缺点:

  • 语法独特,给初学者带来疑惑
  • 运行速度慢
  • GIL锁限制线程并行开发
  • 源代码加密困难

1.2 python语法

python为解释性语言,一行一句,书写时无需添加封号( ; )  

# 例1.1
print("hello world!")

二、Python的变量、类型及运算

2.1 变量的定义

python使用非常粗犷的变量定义形式,与c/c++、Java等需要声明变量类型不同,python只需要给出变量值即可

// 例2.1: Java
public class JavaTest {
    public static void main(String[] args){
        String str = "hello world";
        System.out.println(str);
    }
}
# 例2.2: python
str_ = "hello world"
print(str_)

2.2 变量的类型

python共有5种变量类型:

  • Number 数字
    • int
    • long(python3.x后移除)
    • float
    • complex
  • String 字符串
  • List 列表
  • Tuple 元组
  • Dictionary 字典
  • 特殊:Bool 布尔类型
类型实例
int10
long51924361L
float3.8
complex1-2j
string“hello”
list[1, 2, 3]
tuple(1, 2, 3)
dictionary{“value”: 1}
boolTrue/False

2.3 运算符

2.3.1 算数运算符

运算符描述
+加法
减法
*乘法
/除法,结果为浮点数
//除法,并向下取整
%取模,返回余数
**幂运算
# 例2.3
a = 45 % 2
# a = 1
b = 5 / 2
# b = 2.5
c = 5 // 2
# c = 2

2.3.2 比较运算符

比较运算符返回bool类型

运算符描述
==等于
!=不等于
>大于
<小于
>=大于等于
<=小于等于
# 例2.4
print(2 == 3)
# False
print(5 >= 3)
# True

2.3.3 赋值运算符

运算符描述
=将右边的结果赋值给左边的变量
+=a+=b — a=a+b
-=a-=b — a=a-b
*=a*=b — a=a*b
/=a/=b — a=a/b
//=a//=b — a=a//b
%=a%=b — a=a%b
**=a**=b — a=a**b
# 例2.5
a = 1
b = 2
a += b
# a = 3

2.3.4 逻辑运算符

运算符描述
and布尔“与”运算符,返回两个变量“与”运算的结果
or布尔“或”运算符,返回两个变量“或”运算的结果
not布尔“非”运算符,返回对变量“非”运算的结果
# 例2.6
a = True
b = False
print(a and b)
# False
print(not(a and b))
# True

2.3.5 位运算符

运算符描述
&按位“与”运算符
|按位“或”运算符
^按位“异或”运算符
~按位“取反”运算符
<<“左移动”运算符
>>“右移动”运算符

2.3.6 成员运算符

运算符描述
in当在指定的序列中找到值时返回True,否则返回False
not in当在指定的序列中没有找到值时返回True,否则返回False
# 例2.7
a = [1, 2, 4, 6]
print(3 in a)
# False
print(5 not in a)
# True

常用场景:

# 例2.8
a = [1, 2, 4, 6]
for i in a:
    print(i)

2.3.7 身份运算符

运算符描述
is当在指定的序列中找到值时返回True,否则返回False
is not当在指定的序列中没有找到值时返回True,否则返回False
# 例2.9
print(1 is 2)
# False

常用场景:

# 例2.10
a = True
if a is True:
    pass

2.3.8 运算符优先级(略)

熟能生巧,实在不行全用括号括起来

2.4 字符串

2.4.1 字符串访问

python索引:

从前向后012345
字符串:abcdef
从后向前-6-5-4-3-2-1
# 例2.11
# 访问:
text = "abcdef"
print(text[1])
# 结果:b
# 截取:
print(text[1:3])
# 结果:bc

2.4.2 字符串拼接

使用+拼接字符串

# 例2.12
example = "hello"
print(example + " world")
# hello world

2.4.3 字符串运算

运算符描述
+字符串拼接
*重复输出字符串
[]字符串索引
[:]字符串切割
in/not in成员运算符
r/R原始字符串
%格式化输出

2.4.4 常用内置函数

函数名描述
string.decode()解码
string.encode()编码
string.find()字符串搜索
string.index()字符串搜索
string.format()格式化
string.lower()转小写
string.upper()转大写
string.replace()替代
string.strip()去除前后空格
string.zfill()填充

2.5 列表

2.5.1 列表访问、拼接、运算

大约与字符串一致

2.5.2 常用内置函数

函数名描述
list.append()末尾添加
list.count()统计个数
list.index()列表搜索
list.insert()插入
list.pop()移除
list.remove()删除第一个匹配值
list.reverse()反向排列
list.sort()排序
# 例2.13
a = ["hello", "world"]
a.append("!")
# a = ["hello", "world", "!"]
a.append(1)
# a = ["hello", "world", "!", 1]
a.append("1")
# a = ["hello", "world", "!", 1, "1"]

2.6 元组

2.6.1 元组的特殊性质

  • 不可修改
  • 无符号的对象,以逗号隔开,默认为元组
# 例2.14
a = 1, 2
b = (1, 2)
print(a is b)
# True

2.6.2 元组的访问、拼接、运算

大约与列表一致

2.7 字典

2.7.1 字典定义

d = {key1 : value1, key2 : value2 , ······}

2.7.2 字典值访问

通过键进行索引:
d['key1'] d['key2']

2.7.3 字典修改

值的修改:d['key1'] = value3
键值对的添加:d['key4'] = value4

2.7.4 字典删除

使用del()函数

# 例2.15
dict_ = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict_['Name']    # 删除键是'Name'的条目
# dict_.clear()      # 清空字典所有条目
# del dict_          # 删除字典
print("dict_['Age']: ", dict_['Age'])
print("dict_['School']: ", dict_['School'])

2.7.5 字典特性

  • 字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行
  • 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
  • 键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行

三、标识符及关键字

python一些具有特殊功能的标识符,即所谓的关键字,是python已经使用过的,所以不允许开发者自己定义和关键字相同的名字的标识符

andasassert
breakclasscontinue
defdelelif
elseexceptexec
finallyforfrom
globalifin
importislambda
notorpass
printraisereturn
trywhilewith
yield没了真没了

四、Python输入输出

4.1 输入

使用input()函数

a = input()
print(a)

4.2 输出

4.2.1 普通输出

使用print()

4.2.2 格式化输出

符号描述
%c格式化字符及其ASCII码
%s格式化字符串
%d格式化整数
%u格式化无符号整型
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字
%e用科学计数法格式化浮点数
# 例4.1
print("My name is %s and weight is %d kg!" % ('Zara', 21))
# My name is Zara and weight is 21 kg!

五、条件语句和循环语句

5.1 if

结构:if 条件:

# 例5.1
a = 2
if a == 1:  
    pass
elif a is not True:
    pass
else:
    pass

5.2 while

结构:while 条件:

# 例5.2
count = 0
while count < 9:
   print('The count is:', count)
   count = count + 1
else:
    print("no!")
print("Good bye!")

无限循环:

while True:
    print("Yes!")

5.3 for

结构:for i in sequence:

# 例5.3
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.4 break、continue和pass

5.4.1 break

python break语句,就像在C语言中,打破了最小封闭for或while循环。
break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
break语句用在while和for循环中。
如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。

5.4.2 continue

python continue 语句跳出本次循环,而break跳出整个循环。
continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
continue语句用在while和for循环中。

5.4.3 pass

python pass 是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句。

六、函数

6.1 函数定义

格式:def 函数名(参数1, 参数2, ······):
使用:return返回想要的参数

# 例6.1
def printf(num):
    print(num)

6.2 函数调用

格式:函数名(参数1, 参数2, ······)

# 例6.2
def printf(num):
    print(num)
printf(1)
# 1

6.3 参数传递

参数有两种:

  • 不可更改参数
  • 可更改参数

对于不可更改参数,传值时新建了一个对象,并将值赋给了新对象,原参数值没有发生变化。
对于可更改参数,传值时则是全部传过去,修改时直接修改原数据。

# 例6.3:不可更改
def change_int(a):
    a = 10
b = 2
change_int(b)
print(b)
# 结果是 2
# 例6.4:可更改
def changeme(my_list):
   my_list.append([1,2,3,4])
   print("函数内取值: ", mylist)
   return
mylist = [10,20,30]
changeme(mylist)
print("函数外取值: ", mylist)
# 函数内取值:  [10, 20, 30, [1, 2, 3, 4]]
# 函数外取值:  [10, 20, 30, [1, 2, 3, 4]]

6.4 参数类型(略)

共有4种参数:

  • 必备参数
  • 关键字参数
  • 默认参数
  • 不定长参数

6.5 作用域

  • 全局变量(可以使用global声明全局变量)
  • 局部变量
# 例6.5
total = 0 # 这是一个全局变量
# 可写函数说明
def sum_(arg1, arg2):
   total = arg1 + arg2 # total在这里是局部变量.
   print("函数内是局部变量 : ", total)
   return total

#调用sum函数
sum_(10, 20)
print("函数外是全局变量 : ", total)
# 函数内是局部变量 :  30
# 函数外是全局变量 :  0

七、模块导入

第一种是直接import,导入整个模块
第二种是仅导入某个函数或变量from * import *
如下面的代码片段:

import requests
from bs4 import BeautifulSoup

八、文件I/O

8.1 open()方法

file object = open(file_name [, access_mode][, buffering])

其中:

  • file_name为文件名
  • access_mode为打开文件的模式

8.2 文件操作模式

符号模式描述
t文本模式
x写模式,若存在文件则报错
b二进制模式
r只读模式
rb二进制只读模式,指针位于开头
r+用于读写,指针位于开头
rb+二进制读写模式,指针位于开头
w写入模式,覆盖原有内容,能新建文件
wb二进制写入,覆盖,能新建
w+读写模式,覆盖,能新建文件
wb+二进制读写,覆盖,能新建
a追加模式,能新建
ab二进制追加,能新建
a+读写追加,能新建
ab+二进制读写追加,能新建

8.3 使用方法

在文件操作过程中,涉及到open() close()等IO操作,为了防止新手出现操作失误,python提供了便捷的方法

# 例8.1
with open("test.txt", "a+") as f:
    f.write("hello world")
# 单独使用open函数对文件进行操作时,还需要close函数关闭IO接口  
# 但是使用with open时,会自动进行close操作,无需再次close

九、异常抛出

9.1 结构

try:  # 尝试运行语句
    pass
except (IndexError, ValueError):  # 捕获该异常,分析后继续运行
    pass
else:  # 没有异常的话,运行语句(可选)
    pass

9.2 常见异常

KeyboardInterruptExceptionAttributeError
EOFErrorIOErrorImportError
IndexErrorNameErrorSyntaxError
IndentationErrorTabErrorValueError
UnicodeErrorOSErrorStandardError

十、Python基础挑战题!

定义一系列函数,使得调用函数时,可以在根目录下生成一个”triangle.txt”文件,并在txt文件中画出杨辉三角,要求函数的参数能够规定杨辉三角显示的行数。

例:test(4),行数为4,输出:
                     1
                  1    1
               1    2    1
            1    3    3    1
                   ······

def create(n):
    father_list = [[1], [1, 1]]
    content_list = []
    for i in range(2, n):
        for j in range(len(father_list[i-1])-1):
            content_list.append(father_list[i-1][j]+father_list[i-1][j+1])
        content_list.insert(0, 1)
        content_list.append(1)
        father_list.append(content_list)
        content_list = []
    return father_list
 
 
def write(n):
    content = create(n)
    with open("triangle.txt", "w"):
        pass
    for i in range(n):
        for j in range(n-i):
            with open("triangle.txt", "a+") as f:
                f.write(" ")
        for k in range(len(content[i])):
            with open("triangle.txt", "a+") as f:
                f.write(str(content[i][k]) + " ")
        if i < n-1:
            with open("triangle.txt", "a+") as f:
                f.write("\n")
 
 
write(6)

十一、学习网站

十二、总结

  • 认真看完这份教程,并跟随例题训练,举一反三尝试,那么恭喜你,成功入门了python这门奇妙的语言!(编程语言的入门,一定要多写!想到什么好的题目就尝试去解!每一次绞尽脑汁之后都会上升到不一样的高度!)
  • 这份笔记不完全是基础用法的使用讲解,还有很多如字符串操作、内置函数的介绍等,都是需要不断实践、记住的,笔记中仅仅列举或提及。  
  • 最后,祝各位同学学习顺利!
------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞11赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片