1. 前言
之前的文章中,咱们曾经对 Python 有所理解了,并且也学会了 Pycharm 的装置及应用。当初该开始正式进入主题了,接下来就要学习 Python 的相干语法,以及如何应用他们进行编程。
明天次要内容就介绍 Python 中的如下知识点:
- 变量
- 数据类型
- 运算符
2. 变量
2.1 什么是变量
所谓变量,其实一开始是源自于数学。而在计算机语言中,变量指的是 可能存储计算结果或者可能示意值的抽象概念。
咱们能够通过变量名来拜访变量,在 Python 中,变量通常是可变的,它不仅仅可能示意数字,还能是任意数据类型。
2.2 变量命名规定
Python 中,是通过标识符来给变量命名,而标识符就是用于给程序中变量、类、办法命名的符号。简略来说,标识符就是非法的名字。而什么是非法的名字呢?那咱们就来看看 Python 中标识符的命名规定。
Python 中,标识符 必须以字母、下划线结尾,而后前面能够跟上任意数目的字母、数字以及下划线,而且也辨别大小写。总结起来就是如下几点:
- 变量名只能蕴含字母、数字和下划线,而且只能以字母或下划线结尾,不能以数字结尾,比方咱们能够把一个变量命名为
cunyu_1943、_cunyu1943
然而不能命名为1943_cunyu
; - 变量名两头不能蕴含空格,然而能够用下划线来进行宰割,比方能够命名为
student_name
,但不能命名为student name
; - 变量名应该尽量简短切具备描述性,比方咱们变量名为
name
,那他人一看就晓得这是示意名字的,但如果咱们命名为n
,那可能就得花更多的工夫来搞清楚它到底是啥意思; - 不要把 Python 中的关键字和内置函数名用做变量名,Python 中常见的关键字和内置函数如下表;
关键字 | 形容 |
---|---|
and |
逻辑运算符 |
as |
创立别名 |
assert |
用于调试 |
break |
跳出循环 |
class |
定义类 |
continue |
持续循环的下一个迭代 |
def |
定义函数 |
del |
删除对象 |
elif |
在条件语句中应用,等同于 else if |
else |
用于条件语句 |
except |
解决异样,产生异样时如何执行 |
False |
布尔值,比拟运算的后果 |
finally |
解决异样,无论是否存在异样,都将执行一段代码 |
for |
创立 for 循环 |
from |
导入模块的特定局部 |
global |
申明全局变量 |
if |
写一个条件语句 |
import |
导入模块 |
in |
查看列表、元组等汇合中是否存在某个值 |
is |
测试两个变量是否相等 |
lambda |
创立匿名函数 |
None |
示意 null 值 |
nonlocal |
申明非局部变量 |
not |
逻辑运算符 |
or |
逻辑运算符 |
pass |
null 语句,一条什么都不做的语句 |
raise |
产生异样 |
return |
退出函数并返回值 |
True |
布尔值,比拟运算的后果 |
try |
编写 try...except 语句 |
while |
创立 while 循环 |
with |
用于简化异样解决 |
yield |
完结函数,返回生成器 |
内置函数 | ||||
---|---|---|---|---|
abs() |
delattr() |
hash() |
memoryview() |
set() |
all() |
dict() |
help() |
min() |
setattr() |
any() |
dir() |
hex() |
next() |
slice() |
ascii() |
divmod() |
id() |
object() |
sorted() |
bin() |
enumerate() |
input() |
oct() |
staticmethod() |
bool() |
eval() |
int() |
open() |
str() |
breakpoint() |
exec() |
isinstance() |
ord() |
sum() |
bytearray() |
filter() |
issubclass() |
pow() |
super() |
bytes() |
float() |
iter() |
print() |
tuple() |
callable() |
format() |
len() |
property() |
type() |
chr() |
frozenset() |
list() |
range() |
vars() |
classmethod() |
getattr() |
locals() |
repr() |
zip() |
compile() |
globals() |
map() |
reversed() |
__import__() |
complex() |
hasattr() |
max() |
round() |
3. 数据类型
要解决各种文本、图形、音频、视频等数据,光应用数值类型是远远不够的,咱们须要更多的数据类型来定义不同的数据。在 Python 中,次要有如下几种数据类型:
3.1 数字
数字数据类型用于存储数值,他们是 不可扭转 的数据类型。也就是说,每扭转一个数字数据类型,就会调配一个新的对象。
当咱们给变量指定一个值时,数字对象就会被创立,而如果咱们要删除这些对象的援用,就能够应用 del
语句;
# 创建对象
number = 1
# 删除援用
del number
Python 反对如下不同的数字类型;
int
:整型(⚠️ Python 2.x 中有int
和long
之分,然而 Python 3.x 中只有int
),可能解决任意大小的整数,而且反对常见的二进制、八进制、十进制以及十六进制;float
:浮点类型,也就是数学中的小数。一个浮点数的小数点地位是可变的,它不仅能够示意成数学写法(456.78
),还反对迷信记数法(4.5678e2
);complex
:复数类型,由实部和虚部组成,形如a + bj
的模式,和数学中的复数示意一样,只是把i
变成了j
;
3.2 字符串
以单引号或双引号括起来的任意文本,例如 “cunyu1943”
和 ‘cunyu1943’
,而且还能够书写成多行的模式(用三个单引号或三个双引号结尾,三个单引号或三个双引号结尾)
'''
公众号:村雨遥
blog:cunyu1943.site
'''“”“公众号:村雨遥
blog:cunyu1943.site”“”
Python 中字符串有 2 种取值程序:
- 从左向右索引,索引值从
0
开始,最大索引值是字符串长度减1
; - 从右向左索引,索引值从
-1
开始,最大索引值是字符串结尾;
如果咱们要从字符串汇总获取一小段子字符串,则能够应用 [头下标: 尾下标]
来进行截取。留神 左闭右开 准则,即通过 [头下标: 尾下标]
形式获取的子字符串蕴含头下标的字符,但不蕴含尾下标的字符;
退出咱们的字符串 s = 'abcdef’
,则通过不同形式索引的后果如下图:
3.3 列表
list
是一种 有序 的汇合,能随时向其中增加和删除元素,用 []
标识,外部元素用逗号隔开,元素能够是字符、数字、字符串等数据类型,是 Python 中最罕用的复合数据类型。相似于字符串,也能够用 [头下标: 尾下标]
的形式来进行截取相应子列表,索引形式同字符串,示例如下:
list
中罕用办法如下:
办法 | 阐明 |
---|---|
len(list) |
列表元素个数 |
list(seq) |
将元组转换为列表 |
list.pop() |
删除 list 开端的元素 |
list.pop(index) |
删除 list 中索引地位为 index 的元素 |
list.append(obj) |
在列表开端增加新的对象 |
list.count(obj) |
统计某个元素在列表中呈现的次数 |
list.insert(index, obj) |
将对象插入列表指定地位 |
list.remove(obj) |
移除列表中某个值的第一个匹配项 |
list.reverse() |
反转列表中元素 |
list.index(obj) |
从列表中找出某个值第一个匹配项的索引地位 |
list.sort(cmp=None, key=None, reverse=False) |
对原列表进行排序,reverse = True 降序,reverse = False 升序(默认) |
如果咱们要实现不同列表连贯,应该这么办呢,此时咱们能够应用 +
来连贯不同的数组;
>>> list1 = [1, 2, 3]
>>> list2 = [4, 5, 6]
>>> print(list2 + list2)
[1, 2, 3, 4, 5, 6]
而如果咱们想要某个列表反复,则能够应用 *
;
>>> list1 = [1, 3, 4]
>>> print(list1 * 2)
[1, 3, 4, 1, 3, 4]
3.4 元组
tuple
也是一种相似于 list
的 有序 列表,用 ()
标识,外部元素用逗号隔开。它俩的一个最大区别在于:tuple
一旦初始化之后,就不能再批改了,相当于只读列表,所以 tuple
不像 list
一样有相似 append()、insert()
等办法;
罕用办法如下:
办法 | 阐明 |
---|---|
len(tuple) |
计算元组元素个数 |
tuple(seq) |
将列表转换为元组 |
max(tuple) |
返回元组中元素最大值 |
min(tuple) |
返回元组中元素最小值 |
如果咱们要定义一个空的元组,能够用如下的形式:
tuple = ()
而如果元组中只有一个元素时,为了防止歧义,通常须要定义成如下模式:
t = (1,)
3.5 字典
列表是有序的对象汇合,而字典则是无序的对象汇合,字典用 {}
标识,元素间用逗号分隔,每个元素由 key:value
的模式组成。
两者之间的区别在于:字典中的元素是通过键值对来存取的,而不是通过偏移存取。
字典值尽管可能没有限度,然而键是有限度的,次要有如下两点须要记住:
- 不容许同一个键呈现两次;
- 键必须不可变,所以它能够是数字、字符串或元组,然而不能用列表;
字典也有许多办法供咱们应用,次要办法总结如下:
办法 | 阐明 |
---|---|
len(dict) |
计算字典元素个数,即键的总数 |
str(dict) |
输入字典可打印的字符串示意 |
type(variable) |
返回输出的变量类型,如果变量是字典就返回字典类型 |
dict.clear() |
删除字典内所有元素 |
dict.copy() |
返回一个字典的浅复制 |
dict.haskey(key) |
如果键在字典 dict 里返回 True ,否则返回 False |
dict.get(key) |
返回指定键的值 |
dict.keys() |
以列表返回一个字典所有的键 |
dict.values() |
以列表返回字典中的所有值 |
dict.items() |
以列表返回可遍历的(键, 值) 元组数组 |
pop(key) |
删除字典给定键 key 所对应的值,返回值为被删除的值 |
popitem() |
返回并删除字典中的最初一对键和值 |
3.6 布尔值
布尔值只有 True
、False
两种值,要么是True
,要么是False
。在 Python 中,能够间接用True
、False
间接示意布尔值,也能够通过布尔运算计算出来。
>>> False
False
>>> 3 > 2
True
4. 运算符
Python 反对多种运算符,然而运算符之间也是有优先级的,下表大抵依照优先级从高到低的程序列出了所有运算符,上面别离介绍运算符的类别;
运算符 | 形容 | |
---|---|---|
** |
指数 (最高优先级) | |
~ + - |
按位翻转, 一元加号和减号 (最初两个的办法名为 +@ 和 -@) | |
* / % // |
乘,除,取模和取整除 | |
+ - |
加法减法 | |
>> << |
右移,左移运算符 | |
& |
位 ‘AND ‘ |
|
`^ | ` | 位运算符 |
<= < > >= |
比拟运算符 | |
<> == != |
等于运算符 | |
= %= /= //= -= += *= **= |
赋值运算符 | |
is is not |
身份运算符 | |
in not in |
成员运算符 | |
not and or |
逻辑运算符 |
4.1 算术运算符
假如变量 a = 10, b = 20
:
运算符 | 形容 | 实例 |
---|---|---|
+ |
加 – 两个对象相加 | a + b 输入后果 30 |
- |
减 – 失去正数或是一个数减去另一个数 | a - b 输入后果 -10 |
* |
乘 – 两个数相乘或是返回一个被反复若干次的字符串 | a * b 输入后果 200 |
/ |
除 – x 除以 y |
b / a 输入后果 2 |
% |
取模 – 返回除法的余数 | b % a 输入后果 0 |
** |
幂 – 返回 x 的 y 次幂 |
a**b 为 10 的 20 次方,输入后果 100000000000000000000 |
// |
取整除 – 返回商的整数局部(向下取整) | >>> 9//2 4 >>> -9//2 -5 |
4.2 比拟运算符
假如变量 a = 10, b = 20
:
运算符 | 形容 | 实例 |
---|---|---|
== |
等于 – 比拟对象是否相等 | (a == b) 返回 False |
!= |
不等于 – 比拟两个对象是否不相等 | (a != b) 返回 True |
<> |
不等于 – 比拟两个对象是否不相等。python3 已废除。 | (a <> b) 返回 True 。这个运算符相似 != |
> |
大于 – 返回 x 是否大于 y |
(a > b) 返回 False |
< |
小于 – 返回 x 是否小于 y 。所有比拟运算符返回 1 示意真,返回 0 示意假。这别离与非凡的变量 True 和 False 等价 |
(a < b) 返回 True |
>= |
大于等于 – 返回 x 是否大于等于 y |
(a >= b) 返回 False |
<= |
小于等于 – 返回 x 是否小于等于 y |
(a <= b) 返回 True |
4.3 赋值运算符
假如变量 a = 10, b = 20
:
运算符 | 形容 | 实例 |
---|---|---|
= |
简略的赋值运算符 | c = a + b 将 a + b 的运算后果赋值为 c |
+= |
加法赋值运算符 | c += a 等效于 c = c + a |
-= |
减法赋值运算符 | c -= a 等效于 c = c - a |
*= |
乘法赋值运算符 | c *= a 等效于 c = c * a |
/= |
除法赋值运算符 | c /= a 等效于 c = c / a |
%= |
取模赋值运算符 | c %= a 等效于 c = c % a |
**= |
幂赋值运算符 | c \**= a 等效于 c = c ** a |
//= |
取整除赋值运算符 | c //= a 等效于 c = c // a |
4.4 逻辑运算符
假如变量 a = 10, b = 20
:
运算符 | 逻辑表达式 | 形容 | 实例 |
---|---|---|---|
and |
x and y |
布尔 ” 与 ” – 如果 x 为 False ,x and y 返回 False ,否则它返回 y 的计算值 |
(a and b) 返回 20 |
or |
x or y |
布尔 ” 或 ” – 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值 |
(a or b) 返回 10 |
not |
not x |
布尔 ” 非 ” – 如果 x 为 True ,返回 False 。如果 x 为 False ,它返回 True |
not(a and b) 返回 False |
4.5 位运算符
假如变量 a = 60, b = 13
:
按位运算符石将数字转换为二进制之后来进行计算的,则 a = 00111100、b = 00001101
运算符 | 形容 | 实例 | ||
---|---|---|---|---|
& |
按位与运算符:参加运算的两个值, 如果两个相应位都为 1, 则该位的后果为 1, 否则为 0 | (a & b) 输入后果 12,二进制解释:0000 1100 |
||
` | ` | 按位或运算符:只有对应的二个二进位有一个为 1 时,后果位就为 1 | `(a | b)` 输入后果 61,二进制解释:0011 1101 |
^ |
按位异或运算符:当两对应的二进位相异时,后果为 1 | (a ^ b) 输入后果 49,二进制解释:0011 0001 |
||
~ |
按位取反运算符:对数据的每个二进制位取反, 即把 1 变为 0, 把 0 变为 1。~x 相似于 -x-1 | (~a) 输入后果 -61,二进制解释:1100 0011,在一个有符号二进制数的补码模式。 |
||
<< |
左挪动运算符:运算数的各二进位全副左移若干位,由 << 左边的数字指定了挪动的位数,高位抛弃,低位补 0。 | a << 2 输入后果 240,二进制解释:1111 0000 |
||
>> |
右挪动运算符:把 “>>”右边的运算数的各二进位全副右移若干位,>> 左边的数字指定了挪动的位数 | a >> 2 输入后果 15,二进制解释:0000 1111 |
4.6 成员运算符
运算符 | 形容 | 实例 |
---|---|---|
in |
如果在指定的序列中找到值返回 True ,否则返回 False 。 |
x 在 y 序列中 , 如果 x 在 y 序列中返回 True |
not in |
如果在指定的序列中没有找到值返回 True ,否则返回 False 。 |
x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True |
4.7 身份运算符
身份运算符用于比拟两个对象的存储单元:
运算符 | 形容 | 实例 |
---|---|---|
is |
is 是判断两个标识符是不是援用自一个对象 |
x is y , 相似 id(x) == id(y) , 如果援用的是同一个对象则返回 True ,否则返回 False |
is not |
is not 是判断两个标识符是不是援用自不同对象 |
x is not y ,相似 id(a) != id(b) 。如果援用的不是同一个对象则返回后果 True ,否则返回 False |
5. 总结
好了,文章到这里也算🈶️挺多内容了,连忙去认真看看,而后入手实际起来吧。
如果你感觉我的文章对你有所帮忙,那就连忙去关注我吧。另外,为了不便大家交换,我还特意创立了微信交换群,如果你也有趣味退出,关注我的公众号(村雨遥)回复 加群,我人工拉你入群哦。