【Python入门】Python基础语法

news2024/11/24 4:29:16

在这里插入图片描述
前言

📕作者简介:热爱跑步的恒川,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。
📗本文收录于Python零基础入门系列,本专栏主要内容为Python基础语法、判断、循环语句、函数、函数进阶、数据容器、文件操作、异常模块与包、数据可视化等,持续更新,请大家拭目以待恒川的专栏!
📘相关专栏C语言初阶、C语言进阶、恒川的日常汇报、大家有兴趣的可以看一看
📙Java等专栏正在发展,拭目以待!


Python基础语法

  • 1. 字面量
    • 1.1 什么是字面量
    • 1.2 字符串
    • 1.3 如何在代码中写它们
    • 1.4 总结
  • 2. 注释
    • 2.1 注释的作用
    • 2.2 注释的分类
    • 2.3 总结
  • 3. 变量
    • 3.1 什么是变量
    • 3.2 变量的特征
    • 3.3 总结
    • 3.4 练习
  • 4. 数据类型
    • 4.1 数据类型
    • 4.2 type()语句
    • 4.3 type()语句的使用方式
    • 4.4 变量有类型吗?
    • 4.5 总结
    • 4.6 字符串类型的不同定义方式
  • 5. 数据类型转换
    • 5.1 为什么要转换类型
    • 5.2 常见的转换语句
    • 5.3 类型转换注意事项
    • 5.4 总结
  • 6. 标识符
    • 6.1 什么是标识符
    • 6.2 标识符命名规则
    • 6.3 标识符命名规则 - 内容限定
    • 6.4 标识符命名规则 - 大小写敏感
    • 6.5 标识符命名规则 - 不可使用关键字
    • 6.6 变量命名规范
    • 6.7 总结
  • 7. 运算符
    • 7.1 算术(数学)运算符
    • 7.2 算术运算符的演示
    • 7.3 赋值运算符
    • 7.4 复合赋值运算符
    • 7.5 总结
  • 8. 字符串扩展
  • 9. 数据输入
    • 9.1 input语句(函数)的使用
    • 9.2 input语句获取的数据类型
    • 9.2 总结

1. 字面量

1.1 什么是字面量

字面量:在代码中,被写下来的的固定的值,称之为字面量

Python中有哪些值可以被写下来?
常用的值类型
Python中常用的有6种值(数据)的类型
![在这里插入图在这里插入图片描述

1.2 字符串

字符串(string),又称文本,是由任意数量的字符如中文、英文、各类符号、数字等组成。所以叫做字符的串

如:
“热爱跑步的恒川”
“学Python看恒川”
“4925941922222222222”
“一起加油努力”
Python中,字符串需要用双引号(")包围起来被引号包围起来的,都是字符串

1.3 如何在代码中写它们

我们目前要学习的这些类型,如何在代码中表达呢?
在这里插入图片描述

1.4 总结

  1. 掌握字面量的含义
    代码中,被写在代码中的固定的值,称之为字面量
  2. 常见的字面量类型
    我们目前了解:整数、浮点数、字符串这三类即可
  3. 如何基于print语句完成各类字面量的输出
    print(字面量),如:
    print(10),输出整数10
    print(13.14),输出浮点数13.14
    print(“热爱跑步的恒川”),输出字符串:热爱跑步的恒川

2. 注释

2.1 注释的作用

注释:在程序代码中对程序代码进行解释说明的文字。
作用:注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看懂程序代码的作用,能够大大增强程序的可读性。

2.2 注释的分类

单行注释:以 #开头,#右边 的所有文字当作说明,而不是真正要执行的程序,起辅助说明作用
在这里插入图片描述
注意,#号和注释内容一般建议以一个空格隔开
多行注释: 以 一对三个双引号 引起来 ( )来解释说明一段代码的作用使用方法
在这里插入图片描述

2.3 总结

  1. 注释的作用是?
    注释是代码中的解释型语句,用来对代码内容进行注解
    注释不是代码,不会被程序执行
  2. 单行注释如何定义?
    通过 # 号定义,在#号右侧的所有内容均作为注释
    建议在#号和注释内容之间,间隔一个空格
    单行注释一般用于对一行或一小部分代码进行解释
  3. 多行注释如何定义?
    通过一对三个引号来定义(“”“注释内容”“”),引号内部均是注释,可以换行
    多行注释一般对:Python文件、类或方法进行解释

3. 变量

3.1 什么是变量

变量:在程序运行时,能储存计算结果或能表示值的抽象概念。
简单的说,变量就是在程序运行时,记录数据用的
变量的定义格式
在这里插入图片描述
变量名称:每一个变量都有自己的名称,称之为:变量名,也就是变量本身

=(赋值):赋值,表示将等号右侧的值,赋予左侧的变量
变量的值:每一个变量都有自己存储的值(内容),称之为:变量值

3.2 变量的特征

变量,从名字中可以看出,表示“量”是可变的。

所以,变量的特征就是,变量存储的数据,是可以发生改变的。
思考:
为什么必须要使用变量?
都是输出内容,直接输出不行吗?

变量的目的是存储运行过程的数据
存储的目的是为了:重复使用

3.3 总结

  1. 变量是什么,有什么作用?
    变量就是在程序运行时,记录数据用的
  2. 变量的定义格式是?
    变量名 = 变量值
  3. 变量的特征是?
    变量的值可以改变
  4. print语句如何输出多份内容?
    print(内容1, 内容2, …, 内容N)
  5. Python中如何做减法?
    使用符号 - 即可完成减法运算
    拓展:加(+)、减(-)、乘(*)、除(/)

3.4 练习

请在程序中,定义如下变量:
钱包余额(变量名:money),初始余额50
请通过程序计算,在购买了:
冰淇淋10元
可乐5元
后,钱包余额还剩余多少元。请通过print语句按照下图所示,进行输出:
在这里插入图片描述

4. 数据类型

4.1 数据类型

在学习字面量的时候,我们了解到:数据是有类型的。
目前在入门阶段,我们主要接触如下三类数据类型:
在这里插入图片描述
string、int、float这三个英文单词,就是类型的标准名称。

4.2 type()语句

那么,问题来了,如何验证数据的类型呢?

我们可以通过type()语句来得到数据的类型:
语法:
type(被查看类型的数据)

4.3 type()语句的使用方式

  1. 在print语句中,直接输出类型信息:
  2. 用变量存储type()的结果(返回值)
  3. 查看的都是<字面量>的类型,能查看变量中存储的数据类型吗?
    那当然:可以
# 方式1: 使用print直接输出类型信息
print(type("热爱跑步的恒川"))
print(type(666))
print(type(11.345))


# 方式2: 使用变量存储type()语句的结果
string_type = type("热爱跑步的恒川")
int_type = type(666)
float_type = type(11.345)
print(string_type)
print(int_type)
print(float_type)


# 方式3: 使用type()语句,查看变量中存储的数据类型信息
name = "热爱跑步的恒川"
name_type = type(name)
print(name_type)

4.4 变量有类型吗?

我们通过type(变量)可以输出类型,这是查看变量的类型还是数据的类型?
查看的是:变量存储的数据的类型。因为,变量无类型,但是它存储的数据有。
我们可能会说:字符串变量
但要知道,不是变量是字符串,而是它存储了:字符串

4.5 总结

  1. 使用什么语句可以查看数据的类型?
    type()

  2. name_type变量可以存储变量name的类型信息,是因为?
    因为type()语句会给出结果(返回值)

  3. 变量有没有类型?
    没有,字符串变量表示变量存储了字符串而不是表示变量就是字符串

4.6 字符串类型的不同定义方式

字符串有3种不同的定义方式:
双引号定义法:“字符串”
单引号定义法:‘字符串’
三引号定义法:“”“字符串”“”
在这里插入图片描述
三引号定义法,表示在一堆三个双引号的范围内,均是字符串,如下:
在这里插入图片描述
要注意的是,包含范围是:从三个引号开始,到下一个三个引号结
在这里插入图片描述

5. 数据类型转换

5.1 为什么要转换类型

数据类型之间,在特定的场景下,是可以相互转换的,如字符串转数字、数字转字符串等
那么,我们为什么要转换它们呢?
数据类型转换,将会是我们以后经常使用的功能。
如:

  1. 从文件中读取的数字,默认是字符串,我们需要转换成数字类型
  2. 后续学习的input()语句,默认结果是字符串,若需要数字也需要转换
  3. 将数字转换成字符串用以写出到外部系统等等

用途很多,那么让我们来学习一下如何转换吧。

5.2 常见的转换语句

在这里插入图片描述
同前面学习的type()语句一样,这三个语句,都是带有结果的(返回值)
我们可以用print直接输出
或用变量存储结果值

5.3 类型转换注意事项

# 将数字类型转换成字符串
num_str = str(11)
print(type(num_str), num_str)

float_str = str(11.345)
print(type(float_str), float_str)
# 将字符串转换成数字
num = int("11")
print(type(num), num)

num2 = float("11.345")
print(type(num2), num2)

# 错误示例,想要将字符串转换成数字,必须要求字符串内的内容都是数字
# num3 = int("热爱跑步的恒川")
# print(type(num3), num3)

# 整数转浮点数
float_num = float(11)
print(type(float_num), float_num)

# 浮点数转整数
int_num = int(11.345)
print(type(int_num), int_num)

类型转换不是万能的,毕竟强扭的瓜不会甜,我们需要注意:

  1. 任何类型,都可以通过str(),转换成字符串
  2. 字符串内必须真的是数字,才可以将字符串转换为数字

在这里插入图片描述

5.4 总结

  1. 字符串、整数、浮点数类型转换的语句是?
    在这里插入图片描述

  2. 任何类型都可以转换成字符串,对不对?
    正确

  3. 字符串可以随意转换成数字,对不对?
    错误,字符串内必须只有数字才可以

  4. 浮点数转整数会丢失什么?
    丢失精度,也就是小数部分

6. 标识符

6.1 什么是标识符

Python程序中,我们可以给很多东西起名字,比如:

  1. 变量的名字
  2. 方法的名字
  3. 类的名字,等等

这些名字,我们把它统一的称之为标识符,用来做内容的标识。
所以,标识符:
是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名。
既然要起名字,就会有对应的限制

6.2 标识符命名规则

Python中,标识符命名的规则主要有3类:

  1. 内容限定
  2. 大小写敏感
  3. 不可使用关键字

6.3 标识符命名规则 - 内容限定

标识符命名中,只允许出现:

  1. 英文
  2. 中文
  3. 数字
  4. 下划线(_)

这四类元素。
其余任何内容都不被允许。
注意:

  1. 不推荐使用中文
  2. 数字不可以开头

6.4 标识符命名规则 - 大小写敏感

以定义变量为例:
Andy = “安迪1”
andy = “安迪2”
字母a的大写和小写,是完全能够区分的。
在这里插入图片描述

6.5 标识符命名规则 - 不可使用关键字

Python中有一系列单词,称之为关键字
关键字在Python中都有特定用途
我们不可以使用它们作为标识符
在这里插入图片描述
代码讲解:

# 规则1:内容限定,限定只能使用:中文、英文、数字、下划线,注意:不能以数字开头
# 错误的代码示范:1_name = "张三"
# 错误的代码示范:name_! = "张三"
name_ = "张三"
_name = "张三"
name_1 = "张三"


# 规则2:大小写敏感
Itheima = "黑马程序员"
itheima = 666
print(Itheima)
print(itheima)



# 规则3:不可使用关键字
# 错误的示例,使用了关键字:class = 1
# 错误的示例,使用了关键字:def = 1
Class = 1

6.6 变量命名规范

学完了标识符(变量、类、方法)的命名规则后,我们在来学习标识符的命名规范。

  1. 变量名
  2. 类名
  3. 方法名

不同的标识符,有不同的规范。
我们目前只接触到了:变量。所以,目前学习:变量的命名规范。

  1. 见名知意
  2. 下划线命名法
  3. 英文字母全小写

变量命名规范 - 见名知意
变量的命名要做到:
明了:尽量做到,看到名字,就知道是什么意思

简洁:尽量在确保“明了”的前提下,减少名字的长度
变量命名规范 - 下划线命名法
多个单词组合变量名,要使用下划线做分隔。
变量命名规范 - 英文字母全小写
命名变量中的英文字母,应全部小写

6.7 总结

  1. 什么是标识符?
    用户编写代码时,对变量、类、方法等编写的名字,叫做标识符。

  2. 标识符的命名规则?
    内容限定
    (中文、英文、数字、下划线)
    大小写敏感
    不可使用关键字

  3. 变量的命名规范?
    见名知意
    下划线命名法
    英文字母全小写

7. 运算符

7.1 算术(数学)运算符

在这里插入图片描述

7.2 算术运算符的演示

加减乘除和求平方,我们在前面已经使用过啦。
现在在带上:整除以及求余数,一起试一试吧。

# 算数(数学)运算符
print("1 + 1 = ",1 + 1)
print("2 - 1 = ",2 - 1)
print("3 * 3 = ",3 * 3)
print("4 / 2 = ",4 / 2)
print("11 // 2 = ",11 // 2)
print("9 % 2 = ",9 % 2)
print(" 2 ** 2 = ",2 ** 2)

在这里插入图片描述

7.3 赋值运算符

在这里插入图片描述

7.4 复合赋值运算符

在这里插入图片描述

# 复合赋值运算符
# +=
num = 1
num += 1  # num = num + 1
print("num += 1 :",num)
num -= 1
print("num -= 1 :",num)
num *= 4
print("num *= 4 :",num)
num /= 2
print("num /= 2 :",num)
num = 3
num %= 2
print("num %= 2 :",num)
num **= 2
print("num **= 2 :",num) # 1的二次方
num = 9
num //= 2
print("num //= 2 :",num)

结果:

num += 12
num -= 11
num *= 44
num /= 22.0
num %= 21
num **= 21
num //= 24

7.5 总结

  1. 常见的算术(数学)运算符有:
    加(+)、减(-)、乘(*)、除(/)、整除(//)、取余(%)、求平方(**)
  2. 赋值运算符有:
    标准赋值: =
    复合赋值:+=、-=、*=、/=、//=、%=、**=

8. 字符串扩展

注意:该内容很多,放到下一篇来讲解

9. 数据输入

9.1 input语句(函数)的使用

我们前面学习过print语句(函数),可以完成将内容(字面量、变量等)输出到屏幕上。
在Python中,与之对应的还有一个input语句,用来获取键盘输入。

  • 数据输出:print
  • 数据输入:input
    使用上也非常简单:
  • 使用input()语句可以从键盘获取输入
  • 使用一个变量接收(存储)input语句获取的键盘输入数据即可

代码所示:

"""
演示Python的input语句
获取键盘的输入信息
"""
print(请告诉我你是谁?")
name = input()
print("我知道了,你是:%s" % name)

代码结果:

请告诉我你是谁?
恒川
我知道了,你是:恒川

在前面的代码中,输出”请告诉我你是谁?“的print语句其实是多余的
input()语句其实是可以在要求使用者输入内容前,输出提示内容的哦,方式如下:

name = input("请告诉我你是谁?")
print("我知道了,你是:%s" % name)

如上代码,在input的括号内直接填入提示内容即可。

9.2 input语句获取的数据类型

我们刚刚试验的都是输入了字符串类型的数据。
那么如果我们输入数字类型或其它类型,结果会如何?

那么,让我们通过前面学习过的???
type()语句
来验证一下输入内容的数据类型吧。
代码如下:

# 输入数字类型
num = input("请告诉我你的银行卡密码:")
print("你的银行卡密码的类型是:", type(num))

代码结果:

请告诉我你的银行卡密码:123
你的银行卡密码的类型是: <class 'str'>

我们发现input语句默认的是字符串类型,那我们强制类型转换试一下看看能不能行

代码如下:

# 输入数字类型
num = input("请告诉我你的银行卡密码:")
# 数据类型转换
num = int(num)
print("你的银行卡密码的类型是:", type(num))

代码结果:

请告诉我你的银行卡密码:123
你的银行卡密码的类型是: <class 'int'>

9.2 总结

  1. input()语句的功能是,获取键盘输入的数据

  2. 可以使用:input(提示信息),用以在使用者输入内容之前显示提示信息。

  3. 要注意,无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型


如果这份博客对大家有帮助,希望各位给恒川一个免费的点赞👍作为鼓励,并评论收藏一下,谢谢大家!!!
制作不易,如果大家有什么疑问或给恒川的意见,欢迎评论区留言。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

净利润同比增长48.9%,中国平安“一览众山小”

中国平安价值迸发的速度&#xff0c;或许超过了所有人的想象。 4月26日晚&#xff0c;中国平安发布2023年一季度业绩报告&#xff0c;许多自媒体用“炸裂”来形容其亮眼的财务数据。财报显示&#xff0c;第一季度&#xff0c;集团实现营收2537.78亿元&#xff0c;同比增长30.8…

农机电招平台~java

摘要 随着农机电招行业的不断发展&#xff0c;农机电招在现实生活中的使用和普及&#xff0c;农机电招行业成为近年内出现的一个新行业&#xff0c;并且能够成为大群众广为认可和接受的行为和选择。设计农机电招平台的目的就是借助计算机让复杂的销售操作变简单&#xff0c;变…

LeetCode:383. 赎金信

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340; 算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 题解目录 一、&#x1f331;[383. 赎金信](https://leetcode.cn/problems/ransom-note/)…

DOM概述

DOM概述 什么是DOM对象树化的DOM模型DOM 节点 如何获取DOM元素如何更改我们的DOM模型常用属性修改控制样式属性 事件事件监听 事件类型鼠标事件键盘事件焦点事件文本框输入事件 事件对象回调函数DOM 节点插入节点插入节点删除节点查找节点父子关系兄弟关系 什么是DOM 当网页被…

SPSS如何进行因子分析和主成分分析之案例实训?

文章目录 0.引言1.因子分析2.主成分分析 0.引言 因科研等多场景需要进行绘图处理&#xff0c;笔者对SPSS进行了学习&#xff0c;本文通过《SPSS统计分析从入门到精通》及其配套素材结合网上相关资料进行学习笔记总结&#xff0c;本文对因子分析和主成分分析进行阐述。 1.因子分…

Android:LeakCanary原理的简单理解和使用

LeakCanary原理的简单理解和使用 1、背景2、LeakCanary2.1、LeakCanary 工作原理2.1.1、检测未被 GC 回收的对象2.1.2、转储堆2.1.3、分析堆2.1.4、对泄漏进行分类 2.2、LeakCanary 使用2.2.1、引入依赖2.2.1.1、原理 2.2.2、配置 LeakCanary2.2.3、检测内存泄漏 3、Fragment 和…

Hystrix断路器 (豪猪)-保险丝

一、概述 重点&#xff1a;能让服务的调用方&#xff0c;够快的知道被调方挂了&#xff01;不至于说让用户在等待。 Hystix 是 Netflix 开源的一个延迟和容错库&#xff0c;用于隔离访问远程服务、第三方库&#xff0c;防止出现级联失败&#xff08;雪崩&#xff09;。 雪崩&am…

自动驾驶行业观察之2023上海车展-----车企发展趋势(2)

自主品牌发展 比亚迪&#xff1a;展示3款新车&#xff0c;均于2023年年内上市 比亚迪在本次展会上推出了3款新车&#xff1a;宋L概念车&#xff08;王朝系列&#xff09;、驱逐舰07&#xff08;海洋系列&#xff09;、海鸥&#xff08;海洋系列&#xff09;。 • 宋L&#x…

FreeRTOS:任务的创建和删除

目录 一、函数xTaskCreate二、函数xTaskCreateStatic三、函数xTaskCreateRestricted四、函数vTaskDelete五、任务创建和删除&#xff08;动态&#xff09;代码5.1实验要求5.2程序代码 一、函数xTaskCreate 此函数用来创建一个任务&#xff0c;任务需要RAM来保存与任务有关的状…

Mysql数据库基本操作(增删改查)

目录 一、数据库的基本操作1.1 登录数据库1.2 创建数据库并进入数据库 二、查看数据库结构2.1 查看数据库信息2.2 查看数据库中包含的表及表结构2.3、常用的数据库类型 三、Mysql数据文件3.1 MYD文件3.2 MYI文件3.3 MyISAM存储引擎 四、SQL 语句1、 DDL数据定义语言1.1 删除指定…

〖Python网络爬虫实战㉒〗- 数据存储之数据库详解

订阅&#xff1a;新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列&#xff08;零基础小白搬砖逆袭) 说明&#xff1a;本专栏持续更新中&#xff0c;目前专栏免费订阅&#xff0c;在转为付费专栏前订阅本专栏的&#xff0c;可以免费订阅付…

Eureka、Zookeeper、Consul服务注册与发现

一、Eureka服务注册与发现 1.1 概念 Eureka 是 Netflix 公司开源的一个服务注册与发现的组件 。 Eureka 和其他 Netflix 公司的服务组件&#xff08;例如负载均衡、熔断器、网关等&#xff09; 一起&#xff0c;被 Spring Cloud 社区整合为Spring-Cloud-Netflix 模块。 Eure…

校招失败后,在小公司熬了 2 年终于进了百度,竭尽全力....

其实两年前校招的时候就往百度投了一次简历&#xff0c;结果很明显凉了&#xff0c;随后这个理想就被暂时放下了&#xff0c;但是这个种子一直埋在心里这两年除了工作以外&#xff0c;也会坚持写博客&#xff0c;也因此结识了很多优秀的小伙伴&#xff0c;从他们身上学到了特别…

【JavaEE】TCP协议的十大原理保姆讲解(Transmission Control Protocol)

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE初阶 上一篇文章讲了UDP协议&#xff0c;那么这篇文章我来讲讲TCP协议&#xff0c;TCP协议相对UDP协议难一些&#xff0c;内容相对更多。 TCP&#xff0c;即Transmission Control Protocol&…

AArch32 AArch64 Registers map详细解析与索引

1、AArch32 Registers AArch32 系统寄存器索引。 例如第一个寄存器ACTLR点击后解析如下&#xff1a; 2、AArch64 Registers AArch64 系统寄存器索引。 3、AArch32 Operations AArch32 系统指令索引。 例如第一个寄存器ACTLR_EL1点击后解析如下&#xff1a; 4、AArch…

springboot+vue考研资讯平台(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的考研资讯平台。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌&a…

干翻Mybatis源码系列之第六篇:Mybatis缓存内容概述

前言 一&#xff1a;后续Mybatis我们会研究那些内容&#xff1f; Mybatis核心运行源码分析&#xff08;前面系列文章已经探讨过&#xff09; Mybatis中缓存的使用 Mybatis与Spring集成 Mybatis 插件。 Mybatis的插件可以对Mybatis内核功能或者是业务功能进行拓展&#xff0c…

David Silver Lecture 3: planning by dynamic programming

1 Introduction 1.1 定义 定义&#xff1a; Dynamic: sequential or temporal component to the problem Programming: optimising a program: a policy 核心思想&#xff1a; 将复杂问题拆解成简单子问题 1.2 Requirements for dynamic programming Optimal substructure …

【SWAT水文模型】SWAT水文模型建立及应用第三期:基于世界土壤数据库HWSD建立土壤库(待更新)

SWAT水文模型建立及应用&#xff1a;土壤库建立 1 简介2 土壤数据下载2.1 数据下载方式2.1.1 世界土壤数据库HWSD数据2.1.2 中国土壤数据库 2.2 数据下载 3 土壤数据的准备3.1 SWAT土壤数据库参数3.2 土壤质地转化3.3 土壤参数的提取3.4 其他变量的提取3.5 土壤类型分布图的处理…

高级IO涉及的编程模型

目录 五种IO模型引入IO模型阻塞IO非阻塞IO信号驱动IOO多路转接异步IO IO重要概念同步通信 vs 异步通信阻塞 vs 非阻塞 其他高级IO 非阻塞IOfcntl基于fcntl将文件描述符设置为非阻塞轮询方式读取标准输入 I/O多路转接之select初识selectselect函数原型参数timeout取值fd_set结构…