跟我一起从零开始学python(一)编程语法必修

前言

随着互联网的高速发展,python市场越来越大,也越来越受欢迎,主要源于它:易学易用,通用性广,时代需要,源代码的开放以及人工智能浪潮,接来下我们就从这几个方向谈谈为何python越来越受欢迎,以及入门学习python编程语法

Python之所以越来越受欢迎,市场也越来越大,主要体现在以下几个方面

  • 易学易用:Python语言设计简洁,易于阅读和学习,学习曲线较平缓。同时具有丰富的核心函数库和第三方库,可快速构建复杂应用。

  • 通用性:Python是一种通用性编程语言,可应用于多个领域,如Web开发、数据科学、人工智能、机器学习、图像处理等。特别是数据科学和机器学习领域的发展,使Python成为一种非常流行的编程语言。

  • 开放源代码:Python是开放源代码的,具有广泛的社区支持,可以免费获取,可以免费地编写和分发应用程序。

  • 大数据时代需要:Python具有强大的数据处理和分析能力,成为数据驱动的业务和决策的输入工具之一。此外,Python还具有分布式计算、大规模数据处理和可扩展性等方面的特性,因此在大数据时代得到了广泛应用。

  • 人工智能浪潮:在深度学习和神经网络等方面,Python成为了一种基本语言。在人工智能领域,Python的扩展库TensorFlow,Jupyter Notebook等,让科学家们更方便的进行算法的实验和模拟。

因此,Python已经成为企业、政府和大学中非常重要的编程语言,并且Python在全球范围内已经得到了广泛的认可和应用,未来的发展前景也非常广阔。

那么,如何才能入门python呢,今天带来的介绍就是入门python第一步:编程语法必修

本系列文根据以下学习路线展开讲述,由于内容较多,知识点看不全请打开详细版自行查看:从零开始学python到高级进阶路线图

关注公众号:python技术训练营,接单兼职赚钱,学习进阶一步到位

适用于零基础学习和进阶人群的python资源:

① 腾讯认证python完整项目实战教程笔记PDF
② 十几个大厂python面试专题PDF
③ python全套视频教程(零基础-高级进阶JS逆向)
④ 百个项目实战+源码+笔记
⑤ 编程语法-机器学习-全栈开发-数据分析-爬虫-APP逆向等全套项目+文档
⑥ 交流学习
⑦ 想要兼职接单

一丶python3基础入门

Python是一种高级编程语言,易于学习和使用。Python3是Python语言的最新版本,它具有许多新的特性和改进。本教程将介绍Python3的基础知识,包括变量、数据类型、运算符、条件语句、循环语句、函数、模块等。通过学习本教程,您将能够掌握Python3的基本语法和编程技巧,为进一步学习Python编程打下坚实的基础。

1.数据类型

Python3中常见的数据类型有:

  • 整型(int):表示整数,如1、2、3等。
  • 浮点型(float):表示带小数点的数,如1.0、2.5、3.14等。
  • 布尔型(bool):表示True或False两个值。
  • 字符串型(str):表示一串字符,如"hello"、"world"等。
  • 列表型(list):表示一组有序的元素,如[1, 2, 3]、[“hello”, “world”]等。
  • 元组型(tuple):表示一组有序的元素,但是不可修改,如(1, 2, 3)、(“hello”, “world”)等。
  • 字典型(dict):表示一组键值对,如{“name”: “Tom”, “age”: 18}等。

2.变量与关键字

在Python3中,变量是用来存储数据的,可以通过赋值语句来创建变量。关键字是Python3中已经定义好的一些特殊单词,不能用作变量名。

Python3中常见的关键字有

  • and、or、not:逻辑运算符。
  • if、else、elif:条件语句。
  • for、while:循环语句。
  • break、continue、pass:循环控制语句。
  • def、return:函数定义和返回值。
  • class、object:面向对象编程。

3.语句

Python3中常见的语句有:

  • 赋值语句:用来创建变量并赋值,如a = 1。
  • 条件语句:用来根据条件执行不同的代码块,如if、else、elif。
  • 循环语句:用来重复执行一段代码块,如for、while。
  • 函数定义语句:用来定义函数,如def。
  • 导入模块语句:用来导入其他模块中的函数或变量,如import。

4.表达式

Python3中的表达式是由变量、常量和运算符组成的式子,可以用来计算结果。常见的运算符有:

  • 算术运算符:+、-、*、/、%、**、//。
  • 比较运算符:==、!=、>、<、>=、<=。
  • 逻辑运算符:and、or、not。

5.运算符
Python3中的运算符有很多种,包括算术运算符、比较运算符、逻辑运算符、位运算符等。Python3中的运算符和操作对象包括

  • 算术运算符:用于执行基本的数学运算,如加、减、乘、除、取模、幂等。例如:+、-、*、/、%、**。

  • 比较运算符:用于比较两个值的大小关系,返回True或False。例如:==、!=、>、<、>=、<=。

  • 赋值运算符:用于给变量赋值。例如:=、+=、-=、*=、/=、%=、**=。

  • 逻辑运算符:用于组合多个条件,返回True或False。例如:and、or、not。

  • 位运算符:用于对二进制数进行操作。例如:&、|、^、~、<<、>>。

  • 成员运算符:用于判断一个值是否在序列中。例如:in、not in。

  • 身份运算符:用于比较两个对象的内存地址是否相同。例如:is、is not。

  • 运算符优先级:用于确定运算符的执行顺序。

操作对象包括

  • 数字:整数、浮点数、复数等。

  • 字符串:由一系列字符组成的序列。

  • 列表:由一系列元素组成的序列,可以包含不同类型的元素。

  • 元组:与列表类似,但是元素不可修改。

  • 字典:由一系列键值对组成的无序集合。

  • 集合:由一系列元素组成的无序集合,元素不可重复。

6.字符串

Python3中的字符串是由一串字符组成的,可以用单引号或双引号来表示。字符串可以进行拼接、切片、替换等操作。

7.注释

Python3中的注释用#来表示,可以在代码中添加注释来解释代码的作用。注释可以单独一行,也可以在代码行后面添加。注释不会被解释器执行。

二丶列表与元组

在Python中,列表和元组都是用来存储一组有序数据的容器,它们的区别在于列表是可变的,而元组是不可变的。

列表

列表是Python中最常用的数据类型之一,它可以存储任意类型的数据,包括数字、字符串、布尔值、列表、元组、字典等。列表用方括号 [] 来表示,其中的元素用逗号分隔开。

创建列表

可以通过以下方式创建一个列表:

# 创建一个空列表
my_list = []

# 创建一个包含元素的列表
my_list = [1, 2, 3, 'hello', True, [4, 5, 6]]

访问列表元素

可以通过下标来访问列表中的元素,下标从0开始,可以是负数,表示从后往前数。

my_list = [1, 2, 3, 'hello', True, [4, 5, 6]]

print(my_list[0])  # 输出 1
print(my_list[3])  # 输出 'hello'
print(my_list[-1])  # 输出 [4, 5, 6]
print(my_list[-1][0])  # 输出 4

修改列表元素

列表是可变的,可以通过下标来修改列表中的元素。

my_list = [1, 2, 3, 'hello', True, [4, 5, 6]]

my_list[0] = 100
my_list[-1][0] = 400

print(my_list)  # 输出 [100, 2, 3, 'hello', True, [400, 5, 6]]

列表操作

列表支持一些常用的操作,如添加元素、删除元素、切片等。

  • 添加元素
    可以使用 append() 方法向列表末尾添加一个元素,使用 insert() 方法在指定位置插入一个元素。
my_list = [1, 2, 3]

my_list.append(4)
print(my_list)  # 输出 [1, 2, 3, 4]

my_list.insert(1, 5)
print(my_list)  # 输出 [1, 5, 2, 3, 4]
  • 删除元素
    可以使用 remove() 方法删除指定元素,使用 pop() 方法删除指定位置的元素。
my_list = [1, 2, 3, 4]

my_list.remove(3)
print(my_list)  # 输出 [1, 2, 4]

my_list.pop(1)
print(my_list)  # 输出 [1, 4]
  • 切片
    可以使用切片来获取列表的子集,语法为 [start:end:step],其中 start 表示起始位置(默认为0),end 表示结束位置(默认为列表长度),step 表示步长(默认为1)。
my_list = [1, 2, 3, 4, 5]

print(my_list[1:3])  # 输出 [2, 3]
print(my_list[:3])  # 输出 [1, 2, 3]
print(my_list[::2])  # 输出 [1, 3, 5]

元组

元组和列表类似,也是用来存储一组有序数据的容器,但是元组是不可变的,一旦创建就不能修改。元组用圆括号 () 来表示,其中的元素用逗号分隔开。

创建元组

可以通过以下方式创建一个元组:

# 创建一个空元组
my_tuple = ()

# 创建一个包含元素的元组
my_tuple = (1, 2, 3, 'hello', True, [4, 5, 6])

访问元组元素
可以通过下标来访问元组中的元素,下标从0开始,可以是负数,表示从后往前数。

my_tuple = (1, 2, 3, 'hello', True, [4, 5, 6])

print(my_tuple[0])  # 输出 1
print(my_tuple[3])  # 输出 'hello'
print(my_tuple[-1])  # 输出 [4, 5, 6]
print(my_tuple[-1][0])  # 输出 4

元组操作
元组是不可变的,不能修改元素,但是可以进行一些常用的操作,如切片、拼接等。

  • 切片
    可以使用切片来获取元组的子集,语法和列表相同。
my_tuple = (1, 2, 3, 4, 5)

print(my_tuple[1:3])  # 输出 (2, 3)
print(my_tuple[:3])  # 输出 (1, 2, 3)
print(my_tuple[::2])  # 输出 (1, 3, 5)

拼接

可以使用 + 运算符来拼接两个元组。

my_tuple1 = (1, 2, 3)
my_tuple2 = ('hello', 'world')

my_tuple3 = my_tuple1 + my_tuple2
print(my_tuple3)  # 输出 (1, 2, 3, 'hello', 'world')

列表和元组的选择

列表和元组都是用来存储一组有序数据的容器,它们的区别在于列表是可变的,而元组是不可变的。因此,如果需要对数据进行增删改操作,应该使用列表;如果数据不需要修改,应该使用元组,因为元组比列表更加轻量级,占用的内存更少。

三丶字符串

Python中的字符串是一种不可变的序列类型,可以使用单引号、双引号或三引号来表示。以下是一些常见的字符串操作:

1.字符串拼接
可以使用加号(+)来拼接两个字符串,也可以使用乘号(*)来重复一个字符串。

str1 = "Hello"
str2 = "World"
str3 = str1 + " " + str2  # 拼接字符串
print(str3)  # 输出:Hello World

str4 = str1 * 3  # 重复字符串
print(str4)  # 输出:HelloHelloHello

2.字符串索引和切片

可以使用索引来访问字符串中的单个字符,索引从0开始。也可以使用切片来访问字符串中的一部分,切片的语法为[start:end:step],其中start表示起始位置(包含),end表示结束位置(不包含),step表示步长(默认为1)。

str = "Hello World"
print(str[0])  # 输出:H
print(str[-1])  # 输出:d
print(str[0:5])  # 输出:Hello
print(str[6:])  # 输出:World
print(str[::2])  # 输出:HloWrd

3.字符串常用方法

Python中的字符串还有许多常用方法,例如:

  • len():返回字符串的长度。
  • upper():将字符串中的所有字母转换为大写。
  • lower():将字符串中的所有字母转换为小写。
  • strip():去除字符串两端的空格。
  • split():将字符串按照指定的分隔符分割成多个子字符串,并返回一个列表。
str = " Hello World "
print(len(str))  # 输出:13
print(str.upper())  # 输出: HELLO WORLD 
print(str.lower())  # 输出: hello world 
print(str.strip())  # 输出:Hello World
print(str.split())  # 输出:['Hello', 'World']

总之,字符串是Python中非常重要的数据类型之一,掌握字符串的基本操作和常用方法对于编写Python程序非常有帮助。

四丶字典

在Python中,字典是一种无序的数据结构,用于存储键值对。字典中的键必须是唯一的,而值可以是任何类型的对象。字典用花括号{}表示,每个键值对之间用逗号分隔。

创建字典的方法

1.直接使用花括号{}创建空字典

my_dict = {}

2.使用键值对创建字典

my_dict = {'name': 'Tom', 'age': 18, 'gender': 'male'}

3.使用dict()函数创建字典

my_dict = dict(name='Tom', age=18, gender='male')

访问字典中的值

可以使用键来访问字典中的值,如果键不存在,则会抛出KeyError异常。

my_dict = {'name': 'Tom', 'age': 18, 'gender': 'male'}
print(my_dict['name'])  # 输出Tom

添加或修改字典中的键值对:

可以使用赋值语句来添加或修改字典中的键值对。

my_dict = {'name': 'Tom', 'age': 18, 'gender': 'male'}
my_dict['name'] = 'Jerry'  # 修改name的值
my_dict['height'] = 180  # 添加新的键值对
print(my_dict)  # 输出{'name': 'Jerry', 'age': 18, 'gender': 'male', 'height': 180}

删除字典中的键值对:

可以使用del语句来删除字典中的键值对。

my_dict = {'name': 'Tom', 'age': 18, 'gender': 'male'}
del my_dict['age']  # 删除age键值对
print(my_dict)  # 输出{'name': 'Tom', 'gender': 'male'}

遍历字典:

可以使用for循环遍历字典中的键值对。

my_dict = {'name': 'Tom', 'age': 18, 'gender': 'male'}
for key, value in my_dict.items():
    print(key, value)

输出:

name Tom
age 18
gender male

其他常用方法:

  • keys():返回字典中所有的键。
  • values():返回字典中所有的值。
  • items():返回字典中所有的键值对。

五丶条件丶循环和其他语句

条件语句

Python中的条件语句包括ifelifelse。它们用于根据条件执行不同的代码块。

if语句的语法如下:

if condition:
    # code block

如果条件为True,则执行代码块。如果条件为False,则跳过代码块。

elif语句用于在if语句中添加多个条件。它的语法如下:

if condition1:
    # code block
elif condition2:
    # code block

如果条件1为True,则执行第一个代码块。如果条件1为False且条件2为True,则执行第二个代码块。如果条件1和条件2都为False,则跳过代码块。

else语句用于在if语句中添加一个默认情况。它的语法如下:

if condition1:
    # code block
elif condition2:
    # code block
else:
    # code block

如果条件1为True,则执行第一个代码块。如果条件1为False且条件2为True,则执行第二个代码块。如果条件1和条件2都为False,则执行else代码块。

循环语句

Python中的循环语句包括forwhile。它们用于重复执行代码块。

for循环用于遍历序列(如列表、元组、字符串等)。它的语法如下:

for variable in sequence:
    # code block

在每次循环中,变量将被设置为序列中的下一个值,并执行代码块。当序列中的所有值都被遍历后,循环结束。

while循环用于在条件为True时重复执行代码块。它的语法如下:

while condition:
    # code block

在每次循环中,检查条件是否为True。如果是,则执行代码块。如果不是,则跳出循环。

其他语句

Python中还有一些其他语句,如breakcontinuepass

break语句用于跳出循环。它的语法如下:

while condition:
    # code block
    if some_condition:
        break

在循环中,如果满足某个条件,则使用break语句跳出循环。

continue语句用于跳过当前循环中的剩余代码,并开始下一次循环。它的语法如下:

while condition:
    # code block
    if some_condition:
        continue
    # remaining code in loop

在循环中,如果满足某个条件,则使用continue语句跳过当前循环中的剩余代码,并开始下一次循环。

pass语句用于在代码块中占位。它的语法如下:

if some_condition:
    pass
else:
    # code block

在代码块中,如果需要占位,则使用pass语句。它不执行任何操作,只是占据一个位置。

六丶函数

在Python中,函数是一段可重用的代码块,用于执行特定的任务。函数可以接受参数并返回值。函数的定义以关键字def开头,后跟函数名和括号,括号中可以包含参数列表。函数体包含在冒号后面的缩进块中。

以下是一个简单的函数示例:

def greet(name):
    print("Hello, " + name + "!")

greet("Alice")

输出:

Hello, Alice!

在这个例子中,greet函数接受一个参数name,并在控制台上打印出一条问候语。

函数可以返回一个值,使用关键字return。以下是一个返回两个数之和的函数示例:

def add_numbers(x, y):
    return x + y

result = add_numbers(3, 5)
print(result)

输出:

8

在这个例子中,add_numbers函数接受两个参数xy,并返回它们的和。我们将函数的返回值存储在变量result中,并在控制台上打印出来。

函数可以有默认参数值,这些值在函数被调用时可以被覆盖。以下是一个带有默认参数值的函数示例:

def greet(name, greeting="Hello"):
    print(greeting + ", " + name + "!")

greet("Alice")
greet("Bob", "Hi")

输出:

Hello, Alice!
Hi, Bob!

在这个例子中,greet函数有一个默认参数值greeting="Hello"。如果我们不提供greeting参数,函数将使用默认值。如果我们提供了greeting参数,它将覆盖默认值。

函数可以接受任意数量的参数,使用星号*。以下是一个接受任意数量参数的函数示例:

def print_numbers(*numbers):
    for number in numbers:
        print(number)

print_numbers(1, 2, 3)
print_numbers(4, 5, 6, 7)

输出:

1
2
3
4
5
6
7

在这个例子中,print_numbers函数接受任意数量的参数,并使用for循环打印它们。

函数可以嵌套在其他函数中。以下是一个嵌套函数的示例:

def outer_function():
    print("Outer function")

    def inner_function():
        print("Inner function")

    inner_function()

outer_function()

输出:

Outer function
Inner function

在这个例子中,outer_function包含一个嵌套函数inner_function。当outer_function被调用时,它将打印一条消息并调用inner_functioninner_function也将打印一条消息。

函数可以作为参数传递给其他函数。以下是一个将函数作为参数的示例:

def add_numbers(x, y):
    return x + y

def apply_function(f, x, y):
    return f(x, y)

result = apply_function(add_numbers, 3, 5)
print(result)

输出:

8

在这个例子中,apply_function函数接受一个函数f和两个参数xy。它将调用f(x, y)并返回结果。我们将add_numbers函数作为参数传递给apply_function,并将结果存储在变量result中。

七丶面向对象

Python是一种面向对象的编程语言,它支持面向对象编程(OOP)。面向对象编程是一种编程范式,它将数据和操作数据的方法组合在一起,形成一个对象。在Python中,对象是由类定义的,类是一种用户定义的数据类型,它包含数据和方法。

Python中的面向对象编程有以下几个关键概念

  • 类(Class):类是一种用户定义的数据类型,它定义了一组属性和方法。类是创建对象的模板。

  • 对象(Object):对象是类的实例,它包含了类定义的属性和方法。

  • 属性(Attribute):属性是对象的数据成员,它可以是变量或常量。

  • 方法(Method):方法是对象的操作成员,它可以是函数或过程。

  • 继承(Inheritance):继承是一种机制,它允许一个类继承另一个类的属性和方法。

  • 多态(Polymorphism):多态是一种机制,它允许不同的对象对同一消息做出不同的响应。

下面是一个简单的Python类的例子:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say_hello(self):
        print("Hello, my name is", self.name, "and I am", self.age, "years old.")

person1 = Person("Alice", 25)
person1.say_hello()

在这个例子中,我们定义了一个名为Person的类,它有两个属性(nameage)和一个方法(say_hello)。我们使用__init__方法来初始化对象的属性,使用self关键字来引用对象本身。我们还定义了一个say_hello方法,它打印出对象的属性。

我们创建了一个名为person1Person对象,并调用了它的say_hello方法。输出结果为:

Hello, my name is Alice and I am 25 years old.

这是一个简单的面向对象编程的例子,它展示了Python中类和对象的基本概念。在实际编程中,面向对象编程可以帮助我们更好地组织代码,提高代码的可重用性和可维护性。

在Python中,继承是面向对象编程的一个重要概念。继承允许我们创建一个新的类,该类继承了另一个类的属性和方法。被继承的类称为父类或基类,继承的类称为子类或派生类。

继承

在Python中,继承的语法如下

class ParentClass:
    # 父类的属性和方法

class ChildClass(ParentClass):
    # 子类的属性和方法

在这个例子中,ChildClass 继承了 ParentClass 的所有属性和方法。子类可以使用父类的方法和属性,也可以添加自己的方法和属性。

例如,我们可以定义一个 Person 类作为父类,然后定义一个 Student 类作为子类,继承 Person 类的属性和方法:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say_hello(self):
        print("Hello, my name is", self.name)

class Student(Person):
    def __init__(self, name, age, grade):
        super().__init__(name, age)
        self.grade = grade

    def say_hello(self):
        super().say_hello()
        print("I am a student in grade", self.grade)

在这个例子中,Student 类继承了 Person 类的 __init__ 方法和 say_hello 方法。子类中的 __init__ 方法使用 super() 函数调用父类的 __init__ 方法,以便子类可以继承父类的属性。子类中的 say_hello 方法使用 super() 函数调用父类的 say_hello 方法,并添加了自己的打印语句。

现在我们可以创建一个 Student 对象并调用它的方法:

student = Student("Alice", 15, 9)
student.say_hello()

输出结果为:

Hello, my name is Alice
I am a student in grade 9

这个例子展示了如何使用继承来创建一个子类,并继承父类的属性和方法。子类可以添加自己的方法和属性,也可以重写父类的方法。

封装

在Python中,封装是指将数据和方法包装在一个类中,以保护数据不被外部直接访问和修改。这样可以确保数据的安全性和一致性,同时也可以隐藏实现细节,使代码更加简洁和易于维护。

Python中实现封装的方式是通过使用访问控制符来限制对类的属性和方法的访问。Python中有两种访问控制符:公有和私有。

公有属性和方法可以被类的外部访问,私有属性和方法只能在类的内部访问。在Python中,私有属性和方法的命名规则是在属性或方法名前加上两个下划线“__”。

下面是一个简单的例子,演示了如何在Python中实现封装:

class Person:
    def __init__(self, name, age):
        self.__name = name
        self.__age = age

    def get_name(self):
        return self.__name

    def get_age(self):
        return self.__age

    def set_name(self, name):
        self.__name = name

    def set_age(self, age):
        self.__age = age

p = Person("Tom", 20)
print(p.get_name())  # 输出:Tom
print(p.get_age())   # 输出:20

p.set_name("Jerry")
p.set_age(25)
print(p.get_name())  # 输出:Jerry
print(p.get_age())   # 输出:25

# 下面这行代码会报错,因为__name是私有属性,外部无法直接访问
# print(p.__name)

在上面的例子中,我们定义了一个Person类,包含了两个私有属性__name__age,以及四个公有方法get_nameget_ageset_nameset_age。通过这些方法,我们可以获取和修改对象的属性值,同时保证了属性的安全性。

需要注意的是,Python中的私有属性和方法并不是真正的私有,只是通过命名规则来实现的。如果知道了私有属性和方法的名称,仍然可以在类的外部访问和修改它们。因此,封装并不是完全保证数据的安全性,而是提高了数据的安全性和可维护性。

类的专有方法

在Python中,类的专有方法是指以双下划线开头和结尾的方法,也称为魔术方法或特殊方法。这些方法在类的实例化、属性访问、运算符重载等方面起着重要作用。以下是一些常用的类的专有方法:

  • init(self, …):构造方法,用于初始化对象的属性。

  • str(self):返回对象的字符串表示,可以通过print()函数输出。

  • repr(self):返回对象的字符串表示,可以通过交互式命令行输出。

  • getattr(self, name):当访问不存在的属性时调用。

  • setattr(self, name, value):当设置属性值时调用。

  • delattr(self, name):当删除属性时调用。

  • len(self):返回对象的长度,可以通过len()函数调用。

  • getitem(self, key):当通过索引访问对象时调用。

  • setitem(self, key, value):当通过索引设置对象的值时调用。

  • delitem(self, key):当通过索引删除对象时调用。

  • eq(self, other):当比较两个对象是否相等时调用。

  • lt(self, other):当比较两个对象大小时调用。

八丶异常与文件处理

异常处理

在Python中,异常处理是一种处理程序中出现错误的方式。当程序出现错误时,Python会引发异常。异常是一种Python对象,表示程序中的错误或异常情况。Python提供了try-except语句来捕获和处理异常。

try-except语句的基本语法如下:

try:
    # 代码块
except ExceptionType:
    # 异常处理代码块

其中,try语句块中包含可能引发异常的代码,如果try语句块中的代码引发了异常,则会跳转到except语句块中执行异常处理代码。

文件处理

Python中的文件处理包括文件的读取、写入和关闭等操作。Python提供了open()函数来打开文件,可以指定文件名、打开模式和编码方式等参数。

打开文件的基本语法如下:

file = open(filename, mode, encoding)

其中,filename是文件名,mode是打开模式,encoding是编码方式。打开模式包括:

  • ‘r’:只读模式,打开文件后只能读取文件内容,不能修改文件内容。
  • ‘w’:写入模式,打开文件后可以写入文件内容,如果文件不存在则创建文件,如果文件已存在则清空文件内容。
  • ‘a’:追加模式,打开文件后可以在文件末尾追加内容,如果文件不存在则创建文件。
  • ‘x’:独占模式,打开文件后只能写入文件内容,如果文件已存在则抛出FileExistsError异常。
  • ‘b’:二进制模式,打开文件时以二进制方式读取或写入文件内容。
    文件打开后,可以使用read()write()close()等方法来读取、写入和关闭文件。

读取文件的基本语法如下:

content = file.read()

其中,file是文件对象,read()方法用于读取文件内容。

写入文件的基本语法如下:

file.write(content)

其中,file是文件对象,write()方法用于写入文件内容。

关闭文件的基本语法如下:

file.close()

其中,file是文件对象,close()方法用于关闭文件。

本系列文根据以下学习路线展开讲述,由于内容较多,知识点看不全请打开详细版自行查看:从零开始学python到高级进阶路线图

关注公众号:python技术训练营,接单兼职赚钱,学习进阶一步到位

适用于零基础学习和进阶人群的python资源:

① 腾讯认证python完整项目实战教程笔记PDF
② 十几个大厂python面试专题PDF
③ python全套视频教程(零基础-高级进阶JS逆向)
④ 百个项目实战+源码+笔记
⑤ 编程语法-机器学习-全栈开发-数据分析-爬虫-APP逆向等全套项目+文档
⑥ 交流学习
⑦ 想要兼职接单

下章讲:从零开始学python(二)python并发编程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/35060.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

17 MFC进程通信

文章目录 剪切板管道匿名管道父进程写入数据子进程读出数据 命名管道 邮槽邮槽服务器邮槽客户端 剪切板 设置界面 发送 //设置剪切板数据 void CClipboardDlg::OnBnClickedBtnSend() {UpdateData(TRUE);if (m_strSend.IsEmpty()){MessageBox(L"请输入需要设置的文本&quo…

微信小程序如何进行开发?

文章目录 0.引言1.注册微信公众平台账号2.准备微信开发者工具3.创建微信小程序并预览 0.引言 笔者编程一般编得较多的是桌面软件&#xff0c;有时也会编手机软件&#xff0c;这些软件都必须安装才能使用&#xff0c;这限制了软件的推广。而现有社交软件如微信使用得较广泛&…

Linux的编译器——gcc/g++(预处理、编译、汇编、链接)

文章目录 一.程序实现的两个环境二.gcc如何完成1.预处理2.编译3.汇编4.链接 三.动态库与静态库对比下二者生成的文件大小 四.gcc常用选项 前言&#xff1a; 本文主要认识与学习Linux环境下常用的编译器——gcc&#xff08;编译C代码&#xff09;/g&#xff08;编译C代码&#x…

深度学习--神经网络全面知识点总结(持续更新中)

文章目录 神经网络基础1.1 什么是神经网络&#xff1f;1.2 神经元和激活函数1.3 前向传播和反向传播1.4 损失函数和优化算法 深度神经网络2.1 卷积神经网络&#xff08;CNN&#xff09;2.2 循环神经网络&#xff08;RNN&#xff09;2.3 长短期记忆网络&#xff08;LSTM&#xf…

凝思系统docker离线安装

# linux离线安装docker (18.03.1-ce) ## 解压&#xff0c;得到docker文件夹 tar xzvf docker-18.03.1-ce.tgz ## 将docker文件夹里面的所有内容复制到/usr/bin目录 sudo cp docker/* /usr/bin/ ## 开启docker守护进程 sudo dockerd & 当终端中显示【API list…

Mathtype7Mac苹果ios简体中文版

对于很多人来说&#xff0c;每次编辑文字的时候遇到公式简直就是噩梦。像那些复杂的数学、物理还有化学公式&#xff0c;太难编辑出来了。 那么我们该怎么解决这些难题呢&#xff1f;其实很简单&#xff0c;用公式编辑器就行了。 公式编辑器&#xff0c;是一种工具软件&#…

网络安全之反序列化漏洞分析

简介 FastJson 是 alibaba 的一款开源 JSON 解析库&#xff0c;可用于将 Java 对象转换为其 JSON 表示形式&#xff0c;也可以用于将 JSON 字符串转换为等效的 Java 对象分别通过toJSONString和parseObject/parse来实现序列化和反序列化。 使用 对于序列化的方法toJSONStrin…

卷积神经网络| 猫狗系列【AlexNet】

首先&#xff0c;搭建网络&#xff1a; AlexNet神经网络原理图&#xff1a; net代码&#xff1a;【根据网络图来搭建网络&#xff0c;不会的看看相关视频会好理解一些】 import torchfrom torch import nnimport torch.nn.functional as Fclass MyAlexNet(nn.Module): def…

Flutter学习四:Flutter开发基础(六)调试Flutter应用

目录 0 引言 1 Flutter异常捕获 1.1 Dart单线程模型 1.2 Flutter异常捕获 1.2.1 Flutter框架异常捕获 1.2.1.1 Flutter默认异常捕获方式 1.2.1.2 自己捕获异常并上报 1.2.2 其他异常捕获与日志收集 1.2.3 最终的错误上报代码 0 引言 本文是对第二版序 | 《Flutter实…

《Lua程序设计》--学习2

表 Lua语言中的表本质上是一种辅助数组&#xff08;associative array&#xff09;&#xff0c;这种数组不仅可以使用数值作为索引&#xff0c;也可以使用字符串或其他任意类型的值作为索引&#xff08;nil除外&#xff09;。 Lua语言中的表要么是值要么是变量&#xff0c;它…

防火墙基本原理详解

概要 防火墙是可信和不可信网络之间的一道屏障&#xff0c;通常用在LAN和WAN之间。它通常放置在转发路径中&#xff0c;目的是让所有数据包都必须由防火墙检查&#xff0c;然后根据策略来决定是丢弃或允许这些数据包通过。例如&#xff1a; 如上图&#xff0c;LAN有一台主机和一…

【macOS 系列】如何在mac 邮件客户端配置QQ邮箱和第二个账号

文章目录 一、配置QQ邮箱二、添加新的账户 一、配置QQ邮箱 需要在QQ邮箱账户设置中开启&#xff1a; 开启时&#xff0c;会让你发短信到指定号码&#xff0c;然后就会弹出一个验证码 也就是添加邮箱的密码不是QQ密码&#xff0c;而是这个验证码&#xff0c;这个可以生成多个&…

【OpenGL】读取视频并渲染

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍读取视频并渲染。 学其所用&#xff0c;用其所学。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次更新不迷路&#…

ELK实验部署过程

ELK集群部署环境准备 配置ELK日志分析系统 192.168.1.51 elk-node1 es、logstash、kibana 192.168.1.52 elk-node2 es、logstash 192.168.1.53 apache logstash &#xff08;我这里是把虚拟机的配置全部都改为2核3G的&#xff09; 2台linux 第1台&#xff1a;elk-nod…

【数据库原理】MyShop 商城数据库设计(SQL server)

MyShop 商城数据库设计 项目背景定义课程设计要求概念结构设计逻辑结构设计数据结构的描述用户信息数据结构的描述地址信息数据结构的描述商品类别数据结构的描述商品数据结构的描述购物车数据结构的描述订单数据结构的描述订单项数据结构的描述 物理结构设计用户表结构地址表结…

STM32——GPIO配置

文章目录 一、GPIO八种模式1. 输入2. 输出3. 如何选择GPIO的模式 二、库函数GPIO配置1. 配置代码2.参数设置 一、GPIO八种模式 GPIO的输入输出是对于STM32单片机来说的。以下仅为个人粗略笔记&#xff0c;内部电路分析可参考博客https://blog.csdn.net/k666499436/article/det…

计算机网络_ 1.3 网络核心(数据交换_电路交换_多路复用)

计算机网络_数据交换_电路交换_多路复用 多路复用频分多路复用FDM时分多路复用TDM波分多路复用WDM码分多路复用CDM 多路复用 多路复用&#xff08;Multiplexing&#xff09;&#xff0c;简称复用&#xff0c;是通信技术的基本概念。 链路/网络资源&#xff08;如带宽&#x…

【K8S系列】如何高效查看 k8s日志

序言 你只管努力&#xff0c;其他交给时间&#xff0c;时间会证明一切。 文章标记颜色说明&#xff1a; 黄色&#xff1a;重要标题红色&#xff1a;用来标记结论绿色&#xff1a;用来标记一级论点蓝色&#xff1a;用来标记二级论点 Kubernetes (k8s) 是一个容器编排平台&#x…

docker安装失败 应用程序无法启动,因为应用程序的并行配置不正确

问题描述 报错“应用程序无法启动&#xff0c;因为应用程序的并行配置不正确”。 配置&#xff1a;windows10 解决过程 网上的解决方案有三种&#xff1a; 启动windows服务Windows Modules Installer。运行sxstrace.exe。安装visual c相关依赖。下载visual studio installer…

1.6 OSI 七层参考模型

OSI 参考模型 OSI参考模型解释的通信过程OSI参考模型数据封装与通信过程物理层功能数据链路层功能网络层的功能传输层功能会话层功能表示层功能应用层功能 开放系统互连 (OSI)参考模型是由国际标准化组织 (ISO) 于1984年提出的分层网络体系结构模型目的是支持异构网络系统的互联…