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
#交换a,b的值
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)的总结,大家如果有什么建议或者补充,欢迎评论留言