一、基础语法(1)

print是python内置的函数,可以使用+-*/()等运算符进行算术运算,先乘除后加减;运算符和数字之间可以没有空格,也可以有多个空格,但是一般习惯一个空格。

python 复制代码
print(1+10*3)
print(220*6-1173)

print(2 / 3)

注意:C语言中,2/3结果为0(小数部分被截断);但是在python中得到的结果则是一个小数(例如上图所示),更符合日常使用感官。

下图为Python的内置函数:

1.变量和类型

什么是变量

有时候,我们需要进行计算一些复杂数据,需要把计算的中间结果保存起来,这个时候就需要用到变量

示例

给定四个分数,65.5,89.0,12.9,32.2,求这四个分数的方差?

解题过程为:

python 复制代码
avg = (67.5 + 89.0 + 12.9 + 32.2) / 4
total = (67.5 - avg) ** 2 + (89.0 - avg) ** 2 + (12.9 - avg) ** 2 + (32.2 - avg) ** 2
result = total / 3
print(result)

2.变量语法

2.1定义变量

python 复制代码
a = 10

创建变量的语句非常简单,其中

  • a为变量名,当我们创建很多个变量的时候,就可以用名字来进行区分
  • =为赋值运算符,表示把=右侧的数据放到=左侧的空间中。

注意:变量的名字要遵守一定规则

  • 变量名由数字字母下划线构成;
  • 数字不能开头;
  • 变量名不能和"关键字"重复;
  • 变量名大小写敏感;

软性规则(建议遵守)

  • 变量名使用有描述性的单词来表示,尽量表达出变量的作用;
  • 一个变量名可以由多个单词构成,长一点没有关系,但是含义要清晰;
  • 当变量名包含多个单词的时候,建议使用"驼峰命名法"。形如totalCount这种,除了首单词外,剩余单词首字母大写。

数学中,变量通常使用x,y,z这种简单的英文字母或拉丁字母表示。但在编程中不建议如此使用。

2.2使用变量

读取变量的值

python 复制代码
a = 10
print(a)

修改变量的值

python 复制代码
a = 22
print(a)

注意:在python中,修改变量也是使用=运算符,看起来和定义变量没有明显区别。

也可以用一个变量赋值给另一个变量

python 复制代码
a = 10
b = 20 

a = b

print(a)
print(b)

3.变量类型

变量里面存储的不仅仅是数字,还可以存储其他种类的数据。为了区分不同种类的类型,我们引入"类型"这样的概念。和C++/Java等语言不同,python变量的类型不需要显式指定,而是在赋值的时候确定的。

3.1整数

python 复制代码
a = 10
print(type(a))

注意:和C++/Java等语言不同,Python的小数只有float一种类型,没有double类型。但是实际上Python的float就相当于C++/Java的double,表示双精度浮点数。

3.2字符串

python 复制代码
a = 'hello'
print(a)
print(type(a))

使用' '或" "引起的,称为字符串。可以用来表示文本。

注意:在python中,单引号构成的字符串和双引号构成的字符串,没有区别。'hello'和"hello"是完全等价的。

可以使用len函数来获取字符串的长度

python 复制代码
a = 'hello'
print(len(a))

可以使用+针对两个字符串进行拼接

python 复制代码
a = 'hello'
b = 'opencv'
print(a+b)

此处是两个字符串相加,不能拿字符串和整数/浮点数相加。

3.3布尔

布尔类型是一个特殊的类型,取值只有两种,True(真)/False(假)

python 复制代码
a = True
print(type(a))
b = False
print(type(b))

Python中还有list,tuple,dict,自定义类型等,后续介绍。

为什么需要类型

  1. 类型决定了数据在内存中占据多大空间
  2. 类型其实约定了能对这个变量做什么样的操作

3.4动态类型特性

在python中,一个变量是什么类型,是可以在"程序运行"过程中发生变化的。这个特性称为"动态类型"。

python 复制代码
a = 10
print(type(a))
a = 'hello'
print(type(a))

根据上图的运行结果可知,变量a的类型刚开始是int,后面变成了str。C++/Java这样的语言则不允许这样的操作,一个变量定义后类型就是固定的了。这种特性则称为"静态类型"。

动态类型特性是一把双刃剑

  • 对于中小型程序,可以大大地节约代码量;
  • 对于大型程序,则提高了模块之间的交互成本。

4.注释

4.1什么是注释

注释是一种特殊的代码,它不会影响到程序的执行,但是能够起到解释说明的作用,能够帮助程序员理解程序代码的执行逻辑。

4.2注释的语法

(1)注释行

python 复制代码
# 这是一行注释

(2)文档字符串

使用三引号引起来的称为"文档字符串",也可以视为一种注释。

  • 可以包含多行内容;

  • 一般放在文件/函数/类的开头;

  • (```)或(""")均可

python 复制代码
```
这是文档字符串
这是文档字符串
```

4.3注释规范

  1. 内容准确:注释内容要和代码一致,匹配,并在代码修改时及时更新;
  2. 篇幅合理:注释既不应该太精简,也不应该长篇大论;
  3. 使用中文:一般中国公司都要求使用中文注释,外企另当别论;

5.输入输出

和用户交互

程序需要和用户进行交互

  • 用户把信息传递给程序的过程,称为"输入";
  • 程序把结果展示给用户的过程,称为"输出"。

输入输出的最基本的方法就是控制台。用户通过控制台输入一些字符串,程序再通过控制台打印出一些字符串。

5.1通过控制台输出

python使用print函数输出到控制台

python 复制代码
print('hello opencv')

不仅能输出一个字符串,还可以输出一个其他类型的变量

python 复制代码
a = 10
print(a)

b = True
print(b)

但这样的结果不是我们想要的,我们想要的是输出num = 10

python 复制代码
num = 10
print(f'num = {num}')

注意

  • 使用f作为前缀的字符串,称为f-string
  • 里面可以使用{}来内嵌一个其他的变量/表达式;

5.2通过控制台输入

python使用input函数,从控制台读取用户的输入

python 复制代码
num = 0
num = input('请输入一个整数:')
print(f'你输入的整数是 {num}')

注意:

  • input的参数相当于一个"提示信息",也可以没有;
  • input的返回值就是用户输入的内容,是字符串类型。
python 复制代码
a = input('请输入第一个整数:')
b = input('请输入第二个整数:')

print(f'a + b = {a + b}')

上图运行结果可知,此处的结果是字符串拼接,不是算术运算。若想进行算术运算,需要先转换类型。

python 复制代码
a = input('请输入第一个整数:')
b = input('请输入第二个整数:')

a = int(a)
b = int(b)

print(f'a + b = {a + b}')

通过int()把变量转换成了int类型,这时的结果才正确。

6.运算符

6.1算术运算符

+ - * / % ** // 这种进行算术运算的运算符,称为算术运算符

  1. /中不能用0作为除数,否则会抛异常。
  2. 整数/整数结果可能是小数,而不会截断。
  3. %不是"百分数",而是求余数。
  4. **是求乘方,不光能算整数次方,还能算小数次方。
  5. //是取整数除法(也叫地板除),整数除以整数,结果还是整数(舍弃小数部分,向下取整,不是四舍五入)。

6.2关系运算符

< <= > >= == !=这一系列的运算符称为关系运算符,它们是在比较操作数之间的关系。

其中:

  • <=是"小于等于"
  • >=是"大于等于"
  • ==是"等于"
  • !=是"不等于"

(1)如果关系符合,则表达式返回True;如果关系不符合,则表达式返回False

python 复制代码
a = 10
b = 20

print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)

(2)关系运算符不光针对整数/浮点数进行比较,还能针对字符串进行比较;

python 复制代码
a = 'hello'
b = 'world'

print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)

注意:

  • 直接使用==或者!=即可对字符串内容判定相等;
  • 字符串比较大小,规则是"字典序";

(3)对于浮点数来说,不要使用==判定相等

浮点数在计算机中的表示并不精确,在计算的过程中容易出现误差。

6.3逻辑运算符

and or not这一系列的运算符称为逻辑运算符

python 复制代码
a = 10
b = 20
c = 30

print(a < b and b < c)
print(a < b and b > c)

print(a > b or b > c)
print(a < b or b > c)

print(not a < b)
print(not a > b)

关于短路求值

和其他编程语言类似,python也存在短路求值的规则。

  • 对于and,如果左侧表达式为False,则整体一定为False,右侧表达式不再执行;
  • 对于or,如果左侧表达式为True,则整体一定为True,右侧表达式不再执行。
python 复制代码
print(10 > 20 and 10 / 0 == 1)
print(10 < 20 or 10 / 0 == 1)

从上图运行结果来看,代码没有抛出异常,说明右侧的除以0操作没有真正执行。

6.4赋值运算符

(1)=的使用

=表示赋值;

=除了基本的用法外,还可以同时针对多个变量进行赋值;

链式赋值

python 复制代码
a = b = 10

多元赋值

python 复制代码
a,b = 10,20

(2)复合赋值运算符

python还有一些符合赋值运算符,例如+= -= *= /= %=

其中a += 1等价于a =a + 1。其他复合赋值运算符也是同理

python 复制代码
a = 10
a = a + 1
print(a)

b = 10
b += 1
print(b)
相关推荐
尤物程序猿38 分钟前
深入理解链表数据结构:从Java LinkedList到自定义实现
开发语言·python
DanceDonkey39 分钟前
泛型方法调用需要显示指定泛型类型的场景
开发语言·windows·python
蓝婷儿1 小时前
Python 数据分析与可视化 Day 3 - Pandas 数据筛选与排序操作
python·数据分析·pandas
天天进步20151 小时前
Python图像处理与计算机视觉:OpenCV实战指南
图像处理·python·计算机视觉
noravinsc1 小时前
django调用 paramiko powershell 获取cpu 个数
python·django·sqlite
不学无术の码农1 小时前
《Effective Python》第九章 并发与并行——总结(基于物流订单处理系统)
开发语言·python
@forever@1 小时前
【JAVA】数组的使用
java·开发语言·python
搏博2 小时前
基于Python、tkinter、sqlite3 和matplotlib的校园书店管理系统
python·信息可视化·sqlite·matplotlib
如果我是温帅帅2 小时前
【智能体】n8n聊天获取链接后爬虫知乎
人工智能·爬虫·python
来两个炸鸡腿2 小时前
【Datawhale组队学习202506】零基础学爬虫 02 数据解析与提取
爬虫·python·学习