Python语法基础(1)

118 阅读12分钟

Python语法基础(1)

当我们掌握了一种编程语言之后,就会发现,对于基础语法这一部分,几种主流的编程语言都是大同小异的


常量和变量


常量

在Python中,常量指的是程序运行过程不变的量,这个定义在其他语言中也一样

那么,什么是在程序运行过程中不变的量呢?

例如:

1,2,3....这些,叫作字面常量

+,-,*,/ 这些被叫作运算符常量

...

我们来看下面这串代码

print(1)
print(1+1)

1和+,在程序运行的过程不会发生数值或者作用上的改变,我们把类似这些的量叫做“常量”


变量

故名思义,变量就是可以改变的量

创建变量
avg = 10

这就是变量的创建

其中"avg",就是变量的名称,即"变量名"

"="是赋值操作符,"10"是一个常量

这串代码的含义就是,创建一个变量avg,给它赋上数值10


变量命名的规则

对于变量的命名,我们有几条硬性要求

①采用数字,字母,下划线的组合(数字不能开头)

②不能和关键字(也就是print这些有效果的单词)重复

③大小写是区分开的(num,Num是两种变量)

除了硬性要求之外,我们还有几条软性的要求


其实创建变量的本质是在内存中开辟一块空间,用来存放东西


变量的类型

在Python中 变量可以存放许多的类型

当我们创建一个变量,在给它赋值之后,它就会变成存储对象的类型

我们利用type()这个函数,可以打印出变量对应的类型

①整数-int

就是我们数学中的整数

在Python中,没有byte,short,long ,long long这些类型,对于整数,无论大小,我们统称为int,它的范围从负无穷到正无穷

我们可以写一串代码,看看int类型

a=100
print(type(a))

结果如下 在这里插入图片描述

②浮点数-float

浮点数,也就是我们所说的小数

同样的,在Python中,我们没有对浮点数进行精度的区分,统一用float这种类型,它的精度有一个IEEE754标准

我们可以写一串代码,看看float类型

a=0.66
print(type(a))

结果如下 在这里插入图片描述

③字符串-string(str)

什么是字符串呢?

我们用键盘打出来的无论是字母,数字,还是符号,都叫作字符,字符串就是多个字符组合成的

在定义一个字符串的时候,我们要用 ' 或者 " 把他们引起来

如下面这串代码

a="hello"

我们可以看看a的类型和打印出来的效果

print(a)
print(type(a))

在这里插入图片描述

可以发现我们的引号是不会被打印出来的,那么如果我们想打印出有引号的字符串该怎么办呢

如果我们想打印的字符串中含有单引号,那我们可以用双号把这串字符引起来,如这样

a="'hello' world"
print(a)

这时候我们看看效果 在这里插入图片描述 单引号就打印出来了

同样的我们想打印有双引号的变量,就可以用单引号引起字符串

也就是 单引双,双引单

那么如果我们既要打印单引号,又要打印双引号呢?

此时在Python中,我们可以用三引号"""或者'''来引起字符串,如下

a=""""hello" 'world'"""
print(a)

在这里插入图片描述

我们就可以把单引号和双引号同时打印出来了

  • 注意在Python中'''和"""是等价的关系

    这里我们可以再认识一个函数 len()它可以返回字符串的长度,如下

    a="hello"
    print(len(a))
    

在这里插入图片描述

此时打印的结果就是这串字符的长度5

除此之外,字符串还支持拼接操作

如

```python
a="hello"
b="world"
#我们可以把a和b拼接打印出来
print(a+b)
```

得到

在这里插入图片描述

当然,我们只能对字符串和字符串之间进行拼接,不能把字符串和数字进行拼接

④布尔类型-bool

布尔类型是用于进行逻辑判断的,它只有两个,一个是True(真),另一个是False(假)(注意首字母大写)

在创建一个bool变量的时候我们可以这么写

a=True
print(type(a))

看看打印效果 在这里插入图片描述

⑤其他

除此之外,Python中还有其他的例如 list,tuple,dict,自定义等类型的变量,这些我们后面再说

变量类型的意义

为什么有这么多变量类型,它的意义是什么

我想大概有两点

①不同类型的变量占用的空间大小不一样

int:默认4byte,可自动扩容

float:8byte

bool:1byte

str: 变长

②对应的操作不同

像我们的int和float可以进行+ - * / 等一系列操作,而str只能+,不能 - * /

但是str又可以使用len()这些函数

所以不同的变量类型可以让我们处理更多的事情,就像社会中不同的人从事不同的职业,这样才可以更好地发展

Python中的动态类型特征

动态类型指的是在程序运行过程中,变量的类型会发生改变,如下面这段代码

a=1
print(type(a))
a=0.2
print(type(a))
a="abcd"
print(type(a))

在这里插入图片描述

我们可以看到,对于a这个变量,在程序运行过程中,经历了从int到float再到str的变化,这就是Python中的动态类型

而与之相对的就是静态类型,如Java,C/C++中的变量就是静态变量,在程序运行的过程中,变量和的类型一般不会发生改变

这里我们要注意,一门编程语言是不是动态类型,只取决于在程序运行过程中变量的类型是否发生改变,而不是看创建变量的时候是否声明类型,Python中我们也可以在创建的时候,对变量进行声明如a:int =10

动态类型可以提高我们代码的灵活度,但是相对的会提高错误出现的概率,所以我们要理性看待


注释

每一门编程语言都会有注释,在Python中我们有两种注释方式

①行注释 #

#写在井号后面的内容,不会参与程序的运行
#一般我们把它写在被注释代码的上方
#用来解释下面的代码

②文档字符串注释

'''
我们可以将一段内容上下用单引号或者双引号引起来
这样注释的内容不会影响运行结果,但是会被程序读取识别
可以通过一些工具看到
'''

对于注释,我们有几点需要注意的地方

  • 内容准确
  • 篇幅合理
  • 积极向上

输入和输出

一个程序,少不了和用户进行交互,我们先了解如何在控制台上进行输入输出

在PyCharm中,下面这块区域就是控制台

在这里插入图片描述


输出

对于输出我们常用print()这个函数进行打印

这里我们来说一下Python的格式化字符串

#a = 10
#我们想打印一个a = 10
#C语言里面可以用占位符%d
#C++里会用std::cout<<
#Java会使用拼接
#在Python里面我们用到的就是格式化字符串
#什么是格式化字符串呢
#形如:f-string,用{}往字符串里面嵌入变量或者表达式
a = 10
print(f"a = {a}")
#这样我们输出的就是 a =10

在这里插入图片描述


输入

在Python中,我们常常使用input() 进行输入

同时,我们可以在()中加入字符串,在输入之前会把字符串打印到控制台

在使用input()时,我们还需要用一个变量来接收input的返回值

如下面这串代码

a=input("请输入:")
print(a)

我们运行,就会看到这样,在我们输入之前,程序是不会向下运行的 在这里插入图片描述

这时候我们输入一个数字 在这里插入图片描述

然后再回车,这个10就会被打印到控制台

在这里插入图片描述

但是,我们要注意一点,input() 的返回值是一个str类型

也就是说,看似我们输入的10被打印出来了

但是它打印的字符串10,而不是数字10

我们可以用下面这串代码验证一下

#我们可以用下面这串代码看看
a = input("请输入:")
print(type(a))

在这里插入图片描述

所以,如果我们只是单纯想把东西打印到控制台上,那没什么影响

如果我们想对其进行运算,就需要使用int() 对变量进行类型转换

# 如下面这串代码,我们还是输入10
a = input("请输入一个数:")
a = int(a)
print(a+10)

在这里插入图片描述

对于输入输出我们暂时就说这么多


运算符

算术运算符

所谓算术运算符,也就是我们数学上进行运算的时候使用到的如:+ - * /(加 减 乘 除)这几个就不多说了

** 乘方

需要注意的是它不仅支持整数次方,同时还支持小数次方也就是开方

#如下面这串代码
a=4**2
b=4**0.5
print(a)
print(b)

在这里插入图片描述

% 取余

a%b就表示a除以b的余数,同时我们也要知道这个余数无论如何都是小于除数b的

// 地板除

在说//之前,我们先说一下,Python里面的/,它和C语言里面的除法不一样,不会进行截断

学过C语言的朋友都知道,在C语言中,整数除法如:1/2,默认都是0,它会对小数部分进行截断,但是Python中的除法是不会的

在Python中 1/2 的值就是0.5

而//就是类似于C语言的除法,他会对结果进行向下取整

#我们可以通过这串代码结果直观的感受一下
print(3/2)
print(3//2)

在这里插入图片描述


关系运算符

关系运算符就有我们的> (大于) <(小于) >=(大于等于) <=(小于等于) ==(相等) !=(不等于)

它往往用于比较大小,如果是真,返回一个布尔类型的True,假 返回False

关系运算符不仅可以用来比较数字之间的大小,还可以用来比较字符串的大小(一般是字母组成的)

这时候它的比较规则就是从第一个字母开始按字典序(英语词典的abc顺序,越靠前越大)来比较的

  • 判断相等是==,不是=

  • Python支持a<b<c这种连续比较的


逻辑运算符

逻辑运算符有三个:

符号名称效果
and有一个假就是假,两边都是真才是真
or有一个真就是真,两边都是假才是假
not改变真假

我们可以用下面这串代码直观感受一下

a = 10
b = 20
c = 30
print(a<b and a<c) #两个都是真
print(a<b and a>c) #前真后假
print(a<b or a>c) #前真后假
print(a>b or a>c) #两个都是假
print(a<b) #真
print(not a<b) #假

在这里插入图片描述

关于and和or,我们还需要了解一下短路求值

在and进行运行的时候,如果前面的表达式是假的,已经可以判断结果是假了,这时候就不会对第二个表达式进行判断了

同理,or前面的表达式是真,也不会对后面表达式进行判断


赋值运算符

赋值运算符就是 =,把右边的值放到左边的空间中,所有左边需要是一个变量

有几种特殊的赋值操作

a = b = 10 #链式赋值,先把10赋给b,再把b赋值给a
a,b=10,20 #多元赋值把10赋值给a,把20赋值给b

对于多元赋值,有一个用法就是可以加交换a,b的值

#交换a,b的值
a=10
b=20
a,b=b,a
print(a)
print(b)

在这里插入图片描述

除了最基本的赋值之外,Python还有多元赋值如:

+=,-=,*=,/=,%=

a+=10就是把a加上10再赋值给a,其他也是一样

再C语言中我们有一个自增和自减也就是a++,++a;a--,--a

但是在Python中我们是不支持的,++a会被当作两个正号,--a对被当作两个负号,而a++和a--直接就会报错


其他运算符

除了上面这些之外,Python中还有身份运算符:is ,is not ;成员运算符:in ,not in ;位运算符:&,|,^,~,<<,>>等等,这些我们再说


结语

以上就是我对于Python基础语法(1)的总结,大家如果有什么建议或者补充,欢迎评论留言

值,先把10赋给b,再把b赋值给a a,b=10,20 #多元赋值把10赋值给a,把20赋值给b


对于多元赋值,有一个用法就是可以加交换a,b的值

```python
#交换ab的值
a=10
b=20
a,b=b,a
print(a)
print(b)

[外链图片转存中...(img-AM8Jlr8t-1746120639253)]

除了最基本的赋值之外,Python还有多元赋值如:

+=,-=,*=,/=,%=

a+=10就是把a加上10再赋值给a,其他也是一样

再C语言中我们有一个自增和自减也就是a++,++a;a--,--a

但是在Python中我们是不支持的,++a会被当作两个正号,--a对被当作两个负号,而a++和a--直接就会报错


其他运算符

除了上面这些之外,Python中还有身份运算符:is ,is not ;成员运算符:in ,not in ;位运算符:&,|,^,~,<<,>>等等,这些我们再说


结语

以上就是我对于Python基础语法(1)的总结,大家如果有什么建议或者补充,欢迎评论留言