[python],python的基础语法

本文详细介绍了Python的基础知识,包括环境搭建、基本语法、变量定义、数据类型及运算符等内容。适合初学者快速上手。

学习python 的环境为windows下,使用的是Python 3.7版本

python 环境的安装

可以参考曾经的软件安装管家

python 环境的安装:https://mp.weixin.qq.com/s/uYaA-6O_hQ-SPTSymNNNGQ
python 编译器PyCharm的安装:https://mp.weixin.qq.com/s/NT_IGTrf80GG8wWeHYXarA

如果想要在其他环境中,Linux, Mac OS X下可以参考菜鸟教程

菜鸟教程:https://www.runoob.com/python/python-install.html

python 的基础语法

  • 交互式编程

在这里插入图片描述
只需要输入执行的语句,然后就可以得到结果

  • 脚本式编程

在这里插入图片描述
可以讲程序放在一个.py的文件中,然后通过python 的解释器在终端中运行
在这里插入图片描述

标识符

python中的标识符,同C/C++java的标识符格式一样,也是由数字,字母,下划线组成

同理,标识符不可以由数字开头,区分大小写

以下划线开头的标识符有着特殊的意义

  • 以单下划线开头_foo,代表不能直接访问的类属性,只可以通过类提供的接口进行访问
  • 以双下划线开头的__foo,代表类的私有成员

在这里插入图片描述
而已双下划线开头和结尾的__foo__代表python类的特殊方法,比如:__init__()表示类的构造函数在这里插入图片描述

如果想要在同一行显示多条语句,那么语句之间必须使用;分离。或者一行执行一条语句,可以省略末尾的;分隔符

在这里插入图片描述

行和缩进

python中,一个作用域不是使用{}的形式进行声明,而是采用缩进的格式

在这里插入图片描述
缩进的空白数量是可以自己定义的,想空多少空多少,但是同一个作用域的缩进空白必须统一,否则就会报错
在这里插入图片描述

IndentationError: unindent does not match any outer indentation level

多行语句

如果在写一行语句的时候,感觉这个语句很长,可以采用C语言中的\符号,将一行语句分多行进行显示

t1 = 1
t2 = 2
t3 = 3

val =   t1 + \
        t2 + \
        t3

但如果语句中包含[]{}或者()就可以不要多行连接符

days = ["Monday", "Tuesday", "Wednesday",
        "Thursday","Friday"]

引号

python 中有很多表示字符串的方法,单引号,双引号,三引号

在这里插入图片描述
区别:
单引号和双引号无法表示一个段落
在这里插入图片描述
另外,三引号也可以被当做注释
在这里插入图片描述

python中的注释

  1. #,一般注释单行
  2. """''',三引号,一般注释多行

python 中的变量

变量就是存储在内存中数据的值,当我们创建一个变量的时候,就会在内存中开辟一个空间。

在python中,编译器会根据变量的数据类型,然后分配指定的内存,并决定什么数据可以被存储在内存中

变量的赋值

由于在python中的变量不需要进行类型的声明,他每个变量在内存中的创建,包括变量的标识,名称和数据等信息。
在这里插入图片描述

所以说,变量在使用前必须赋值,变量赋值以后才会被创建。

一般可以使用=进行赋值,左边为变量名,右边为存储在变量中的值

如果想要为多个变量赋值,可以采用这种写法

a = b = c = 1

或者

a , b ,c = 1, "hello", 3

标准数据类型

  1. Numbers,数字
  2. String,字符串
  3. List,列表
  4. Tuple,元组
  5. Dictionary,字典

数字

他支持四种不同的数字类型

类型含义
int有符号整形
long长整形
float浮点型
comples复数

在 Python3.X 版本中 long 类型被移除,使用 int 替代

字符串

字符串一般是指,由数字,祖母,下划线组成的一串字符

s = "hello world"

一般字符串列表由两种取值的顺序

  1. 从左向右索引,他的下标默认从 0 0 0开始
  2. 从右向左索引,他的下标默认从 − 1 -1 1开始

在这里插入图片描述
而在python中,字符串的截取操作也很方便,直接使用[开始位置:结束位置+1]就可以得到该范围的字符串

>>> s = "hello world"
>>> s[1:5]
'ello'

甚至于还有如下的操作

>>> s[0] # 输出一个字符
'h'
>>> s[2:]	# 输出2下标后的所有字符
'llo world'
>>> s * 2	# 字符串输出2次
'hello worldhello world'
>>> s + " Test"	# 字符串拼接
'hello world Test'

还可以根据指定的步长来截取区间内的字符串

>>> s[1:6:2]
'el '
>>> s[1:6]
'ello '

列表

列表,他支持字符,数字,字符串,甚至列表的一个嵌套操作,使用[]来标识

>>> arr = ["abc",123,["def"],'c']
>>> arr
['abc', 123, ['def'], 'c']

注意:

  1. 他的切割同字符串中的操作,并且list中的元素是可以改变的
  2. 可以使用+操作符进行拼接

元组

元组,显示同列表差不多,只是他只可以进行读,不能修改,使用()来标识,内部使用,隔开,不可以二次赋值,一个只读列表
在这里插入图片描述
元组不允许被更新,列表可以被更新

字典

字典,相当于C/C++中的unordered_map哈希表,以key=value的格式对数据进行存储,并通过key来获取value中的数据

>>> dict = {}
	      
>>> dict['水果'] = "apple"
	      
>>> dict[2] = "数字"
	      
>>> dict[2]
	      
'数字'
>>> dict['水果']
	      
'apple'
>>> dict.keys()
	      
dict_keys(['水果', 2])
>>> dict.values()
	      
dict_values(['apple', '数字'])
>>> dict
	      
{'水果': 'apple', 2: '数字'}

注意:

  1. 字典是一种映射类型,元素为键值对
  2. 字典的关键字为不可变类型,并且不能重复
  3. 创建空字典使用{}

set集合

集合,他是一些元素的一个集合,构成集合的事物或者对象称为元素或者成员,可以对元素进行去重

集合的创建可以使用{}或者set()

>>> st = {'apple','banana','orange','apple'}
>>> st
{'orange', 'apple', 'banana'}
>>> st2 = set('abcdefgabcdrg')
>>> st2
{'b', 'e', 'f', 'a', 'c', 'r', 'g', 'd'}
>>> 

空集合不可以使用{}来创建,因为{}是用来创建一个空字典的

集合之间的运算:

>>> st2 = set('abcdefgabcdrg')
>>> st2
{'b', 'e', 'f', 'a', 'c', 'r', 'g', 'd'}
>>> st1 = set('abcrdszxcv')
>>> st1
{'b', 'x', 'a', 'c', 'r', 's', 'z', 'v', 'd'}
>>> print(st1 & st2)	# 集合的交集
{'b', 'a', 'c', 'r', 'd'}
>>> print(st1 | st2)	# 集合的并集
{'b', 'e', 'f', 'x', 'a', 'c', 'r', 's', 'z', 'g', 'v', 'd'}
>>> print(st1 - st2)	# 集合的差集
{'x', 'z', 's', 'v'}
>>> print(st1 ^ st2)	# 集合中不同时存在的元素
{'e', 'f', 'x', 'z', 'g', 's', 'v'}

python 运算符

常见的算术运算符

运算符描述
+两数相加
-两数相减
*两数想乘
/两数相除,浮点数的除法
//两数相除,向下取整
%除法操作的余数
**幂运算

常见的比较运算符

运算符描述
==等于
!=不等于
>大于
<小于
>=大于等于
<=小于等于

赋值运算符

运算符描述
=直接赋值
+=加法赋值
-=减法赋值
*=乘法赋值
/=除法赋值
%=取模赋值
**=幂赋值
//=向下取整赋值
:=海象运算符,可在表达式内部为变量赋值。python3.8版本新增

位运算符

运算符描述
&按位与运算
|按位或运算
^按位异或
~按位取反
<<左移操作
>>右移操作

逻辑运算符

运算符描述
and布尔
or布尔
not布尔

成员运算符

运算符描述
in在指定的序列中找到该值,返回true
not in没有在指定的序列中找到该值,返回false

身份运算符

运算符描述
is判断两个标识符是不是引用自一个对象
is not判断两个标识符是不是引用自不同对象

可以使用is来判段python中的赋值操作,是深拷贝还是浅拷贝

  1. 对于数值类型的数据
    在这里插入图片描述

  2. 对于list类型的数据
    在这里插入图片描述

可以发现,对于数值类型和字符串类型的数据,赋值给一个新的变量后,没有发生修改之前,使用的是引用,但是当修改为不同的数据后,就会发生新的拷贝

对于list类型的数据,直接使用赋值运算符,无论修改与否,都是引用操作,也就是浅拷贝

is==区别

  • is用于判断两个引用对象是否为同一个对象
  • ==用于判断引用变量的值是否相等
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值