一、基础语法(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)
相关推荐
香蕉可乐荷包蛋9 分钟前
PyTorch的基础概念和复杂模型的基本使用
人工智能·pytorch·python
过往入尘土13 分钟前
控制鼠标和键盘
python
@小匠42 分钟前
利用WPS 中的PY脚本功能,使用 Python 统计 WPS 在线表格数据(案例是统计开发计划任务进度)
开发语言·python·wps
赤鸢QAQ43 分钟前
Qt小组件 - 6 异步运行函数
开发语言·python·qt·pyqt
山烛1 小时前
深入了解 find_element 方法:Web 自动化定位元素的核心
前端·javascript·python·selenium·find_element
都叫我大帅哥1 小时前
LangChain文件分割全攻略:切分文档的艺术与科学
python·langchain
都叫我大帅哥1 小时前
Python的match语句:模式匹配的艺术与科学
python
万粉变现经纪人2 小时前
如何解决pip安装报错ModuleNotFoundError: No module named ‘pillow’问题
python·pycharm·beautifulsoup·pandas·pillow·pip·策略模式
落鹜秋水10 小时前
xss总结
开发语言·python
Norvyn_710 小时前
LeetCode|Day19|14. 最长公共前缀|Python刷题笔记
笔记·python·leetcode