Python基础语法总结3.x

Python基础语法总结(3.x)

花了一段时间学习python,现在来系统总结一下py的基础语法以及py的独特之处,以备日后查阅。

空格做缩进!空格做缩进!空格做缩进!

注释

# 这是一行注释

"""
这也是注释,不过是区域注释
"""
# “‘”’ 这样是错误的! 引号必须成对出现!
# “”“” 双引号套双引号也不可以!
# ‘“”’ 正确。
# 即双引号不能单独重复套用, 单引号也不能单独重复套用   

输入输出

标准输入、输出:

输入:

#标准输入【键盘输入】
input()    #接受任何输入,默认字符串化处理并返回此字符串。
input("any tips you want users to see")  #括号内可以写任何你想要用户看到的提示。

输出:

print()  #直接输出,任何类型都可。包括字符串表达式。
print("the length of %s is %d" %(s, x))  #与 C 语言类似。
print(x, end='')  #取消换行。
print(x, '1111')  #如此也可以直接输出,py中变量可接字符串直接输出

#格式化输出:
## 第一种格式化输出:
print("name: %s, age: %d" %(name, age))
## 第二种格式化输出
name = "xxx"
age = 11
print(f"{name}的年龄:{age}")
## 第三种格式化输出:
print("{}的年龄:{}".format(name, age))

#反转义
## 使用r来反转义
print(r"\n\t")
## 使用\\来反转义
print("\\n, \\t")
## 指定字符反转义
str.replace("\n", r"\n")
## 使用repr()函数不转义源字符串并赋值给新字符串    注意!repr()函数所在库需要import!
a = "\n\t"
b = repr(a)

这里着重说一下:
-:表示左对齐;
.3:表示小数点后三位,不指定位数也可以.*。

文件输入、输出

文件操作,首先记得open()打开文件! 使用完毕后记得关闭连接!

文件输入:

#文件输入
file_1 = open(fileName, mode)   #fileName:要读取的文件名称, mode:读取模式--->见下表      open()函数返回一个文									                                                      件对象。

#write()  覆盖输入   truncate the file and write things in.
file_1.write('111')    #不支持列表及其他的元素,只支持字符串

#writeline()  覆盖输入, 但是支持列表等数据结构
file_1.writelines(["1111111, \t 22222222 \n"])  #支持字符串以及列表
file_1.writelines(set('111, 222, 333333, a, b, c, d'))       # set支持
file_1.writelines(('1111', '22222', 'aaaaabbdfgsf\n\n'))   #元组全部可以写入
file_1.writelines({'username': '11111', 'pwd': '22222'})   #   字典  只能  写进去key

#flush()清空缓冲区
file_1.flush()

##如需追加写入,则更换文件打开模式   mode ----> a/a+
open(fileName, "a")
open(fileName, "a+")

文件输出:

#文件输出
file_1 = open(fileName, mode)   #fileName:要读取的文件名称, mode:读取模式--->见下表
## 读取整个文件,将文件内容放到一个字符串变量中。   缺点:文件过大时不适合使用。尤其是文件大小大于内存大小时,更是不能使用。
## 直接读取字节到字符串中,包括了换行符
file_1.read()     #返回值是读取到的内容
## readline()方法每次读取一行;返回的是一个字符串对象,保持当前行的内存   缺点:比readlines慢的多
## readline()读取整行,包括行结束符,并作为字符串返回
file_1.readline()   #返回值是读取到的内容
## 特点:一次性读取整个文件;自动将文件内容分析成一个行的列表
## 作为一个字符串列表返回。
file_1.readlines()

其中mode(读取模式)有如下几种:

  1. r   只读,文件指针在文件开头,【默认模式】。
  2. rb  二进制格式只读,文件指针在文件开头。
  3. r+  读写,文件指针在文件开头。
  4. rb+  二进制格式读写,文件指针在文件开头。
  5. w  只写。原文件存在则删除原有内容,从开头开始编辑;原文件不存在则创建文件。
  6. wb  二进制只写。原文件存在则删除原有内容,从开头开始
    编辑;原文件不存在则创建文件。
  7. w+  读写,原文件存在则删除原有内容,从开头开始
    编辑;原文件不存在则创建文件。
  8. wb+  二进制读写。原文件存在则删除原有内容,从开头开始
    编辑;原文件不存在则创建文件。
  9. a  追加写入。原文件存在则从结尾开始编辑;原文件不存在则创建文件。
  10. ab   二进制追加写入。原文件存在则从结尾开始编辑;原文件不存在则创建文件。
  11. a+   读+追加写。原文件存在则从结尾开始编辑;原文件不存在则创建文件。
  12. ab+  二进制读+追加写。原文件存在则从结尾开始编辑;原文件不存在则创建文件。
Character Meaning
--------- ---------------------------------------------------------------
'r'       open for reading (default)
'w'       open for writing, truncating the file first
'x'       create a new file and open it for writing
'a'       open for writing, appending to the end of the file if it exists
'b'       binary mode
't'       text mode (default)
'+'       open a disk file for updating (reading and writing)
'U'       universal newline mode (deprecated)
========= ===============================================================

with open 语句块

语句块打开文件,则在语句块运行结束,则会自动关闭文件连接。比较安全。推荐使用

with open("test_1.txt", "r") as file_1:
    all = file_1.read()
    print(all)

流程控制

判断

#单分支
if 条件:
	语句块
#多分支:
if 条件1:
	语句块
elif 条件2:
	语句块
...
else:
	语句块
	
#冒号千万别忘记,不然会出语法错误。

循环

#while循环
while condition:
	语句块
#while-else  条件不成立,则执行else
while condition:
	语句块
else:
	语句块

#for循环   for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
#          else:循环结束时执行。
for 元素 in 序列
	语句块
else
	语句块

#使用索引来遍历。range函数的具体用法见下文。
for index in range(len(list_name)):
	statements
else:
	statements

range()函数:可以生成数字序列,用于遍历。

  • 生成正数序列时

    • 左闭右开
    • range(start, end, length) 也可不写start,默认从0开始。
  • 生成负数序列时

    • 左闭又开
    • range(start, end, length[有方向!]) 如果端点包括0,则会比生成正数多生成一个数字

不论是生成正数还是生成负数序列,length步长的方向必须与前面序列的方向相同,不然会返回空序列。

​ 比如:range(1, 10, 1) 即1 -> 10 每次都加1

​ range(1, 10, -1) 则错误!1 -> 10 每次都减1,永远到不了10,会返回空序列。

​ range(-1, -10, -1) -1 -> -10 每次减1,则可以

​ range(-1, -10, 1) -1 -> -10 每次加1,则错误!会返回空序列。

range(5)   #生成0-4的数字序列
range(6,9) #生成6-8的数字序列

pass:不做任何事情,用于占位。

变量

  1. 无类型声明,首次赋值才会创建。可在后期更改其类型(赋值不同类型数据)。
  2. 变量命名规则与C/C++相同。
  3. 允许多变量连续赋值。
a = b = c = 1   #多变量同时赋与相同的值。
a = b = c = 1 = 'a' = 3  #多变量同时赋予不同类型的值。
  1. 函数外部创建的变量为全局变量。函数内部若想创建全局变量则需加“global”关键字。函数内部若想改变外部全局变量的值,也需先使用global关键字声明变量后再更改其值。
x = 2   #全局变量
def function:
	global y = 1    #函数内部创建全局变量。
	global x
	x = 'aaa'       #函数内部更改外部全局变量的值。
  1. 变量交换

    1)  a = temp
    	a = b
    	b = temp
    2)	a, b = b, a
    

数据类型

内置数据类型:

  1. 文本类型:str
  2. 数值类型:int,float,complex(复数)
  3. 序列类型:list(列表),tuple(元组),range(自动生成数字序列)
  4. 映射类型:dict(字典)
  5. 集合类型:set,frozenset(返回冻结集合)
  6. 布尔类型:bool
  7. 二进制类型:bytes,bytearray,memoryview

⚪获取数据类型:type()函数。

⚪赋值时即自动设置了变量的数据类型。

⚪也可使用对应的构造函数设置特定数据类型。(构造函数名称无改变)

指定变量类型

python可以使用各个基本类型的构造函数来构造(强转)数据类型。

  • int()   可接收整数、浮点(向下取整)、表示完整的字符串。
  • float()   可接收整数、浮点、表示整数或者浮点的字符串。
  • str()   可接收整数、浮点、字符串。

数字类型

int、float、complex。

  • 复数创建形式:a + bj
  • 复数无法转为其他数据类型。
z = 1 + 2j   #complex

关于创建随机数:python无直接可用的random()函数,但有random内置模块,可以调用其中的randrange(left,right)方法来创建随机数。 左闭右开。
其中的random()函数可以返回 [0-1) 的随机数。

import random
x = random.randrange(1, 10)   #生成1-9的随机数字。
y = random.random()    #生成 [0-1)的随机数字  此处若不熟悉seed()函数,则无需手动设定,py会自动设定seed。

字符串

字符串是字面量,不可更改。如需要更改,则解释器自动创建新字符串字面量,将原字符串中内容和更改内容写入新的字符串字面量。

  • python无字符类型,单个字符即为长度为1的字符串。

  • 字符串是数组,可以直接索引。

  • 字符串名称[left :rigth]: 裁切。范围:[left,right)

  • 负索引:从右往左,从-1开始。

  • 获取字符串长度:len()方法。

  • a in b:表示判断a是否是b的字串。

  • 字符串拼接:可以拼接多个,但不能是str以外的类型。

    可以使用format()方法将其他类型的数据拼接在同一个字符串中。
    也可以使用join方法将其他集合、元组、…中的元素使用规定符号连接

  • 字符串内置方法此处不再赘述。

    #012345678..12
x = "hello python"
  #-12  ...   -2-1
  
 #字符串拼接
quantity = 3
itemno = 567
price = 49.95
txt1 = "I want {} pieces of item {} for {} dollars."
txt_ = txt1.format(quantity, itemno, price)
#使用索引表示确保参数被放置在正确的位置。
txt2 = "I want to pay {2} dollars for {0} pieces of item {1}." 
txt_ = txt2.format(quantity, itemno, price)

#使用join()函数将list、元组转成字符串,并每个元素用-连接。
str = '-'
ans_list = [1, 2, 3]
ans_tuple(1, 3, 4)
str.join(ans_list)
str.join(ans_tuple)	
方法作用
upper()转大写
lower()转小写
isupper()判断是否是大写
islower()判断是否是小写
startwith()判断是否以指定字符/字符串开头 返回bool值。
endswith()判断是否以指定字符/字符串开头,返回bool值
index()返回指定字符第一次出现的位置,找不到指定字符则报错
count(char/str, startIndex, endIndex)统计指定字符在字符串中出现的次数, 后两个参数可以不填
capitallize()将字符串开头大写
strip()/ strip(‘ab’)不填参数默认去除字符串两边的空格。传入参数则删除字符串开头和结尾有参数内字符的字符
split()/split(’-’)将字符串按照指定字符进行分割,返回值是list集合 不填参数则不拆分
join()见上方讲解
replace(substring, newstring, max)substring指被替换的字符串,newstring指要替换的字符串,max表示替换次数
find()/rfind()寻找指定字符串出现的索引位置,找不到则返回-1 rfind()则是从右向左找
isalpha()检测字符串是否只有字母和数字组成
isdigit()检测字符串是否只有数字组成
True: Unicode数字,byte数字(单字节),全角数字(双字节)
False: 汉字数字,罗马数字,小数
Error: 无
isdecimal()检测字符串是否只有数字组成
True: Unicode数字,全角数字(双字节)
False: 罗马数字,汉字数字,小数
Error: byte数字(单字节)
isnumeric()检测字符串是否只有数字组成
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 小数
Error: byte数字(单字节)
encode(编码类型)将字符串转换为字节,参数为编码类型,不填则默认
该方法返回编码后的字符串,它是一个 bytes 对象。
decode()用法待补充

运算符

算术运算符

偷懒整张图~
注意幂运算符和地板除是py新引入的。

赋值运算符

在这里插入图片描述
注意最后几个:

  • &= : 按位与
  • |=: 按位或
  • ^=: 按位异或
  • >>=: 二进制右移
  • <<=: 二进制左移

比较运算符

在这里插入图片描述

逻辑运算符

在这里插入图片描述
这里区别于C/C++,直接使用英文作为运算符。

身份运算符

在这里插入图片描述
用于比较对象,不是比较值,是比较两个对象是否为同一个对象(指向同一个内存区域)

成员运算符

在这里插入图片描述
可用于判断子序列是否在母序列中出现。

位运算符

在这里插入图片描述

函数

使用def关键字定义:

def 函数名(参数列表):
	函数体
def sum(a, b = 2):
    print(a + b)
#函数调用
  #必需参数  要按照声明顺序传入。
  sum(a, b)
  #关键字参数: 可以不按照声明顺序传入,解释器可以根据参数名自动匹配参数。
  sum(b = 2, a = 3)
  #默认参数  函数调用时若没有传入指定数量的参数,则会使用函数定义时对应参数的默认值。
  sum(a = 2)
  
  a = 2
  sum(a)
  #不定长参数 加了*的参数会以元组的形式存储所有未命名参数,即超过fomal args数量之后传入的参数。
  def sum(fomal args, *args_tuple)
  	print('args' + args)
  	print('args_tuple' + args_tuple)
  sum(1,1,2,3,4)
  sum(1)       #也可以不传递不定长参数,只传递必要的定长参数。
  # **参数  以字典形式导入。
  def sum(fomal args, **args_dict)
  	print(args_dict)  #即输出 传入的字典
  sum(1, a = 2, b = 3) #输出: {'a': 2, 'b': 3}
  #*可单独出现于函数参数列表中,但其后位置的参数必须以关键字形式传入。
  def sum(a, *, b)
  	print(a + b)
  sum(a, b = 2) #正确。
  sum(a, b) #错误。
  • 匿名函数:lambda表达式。
    参考java中的lambda表达式,但python中只允许其包含一句语句。
lambda [arg1 [,arg2,.....argn]]:expression

sum = lambda a, b: a + b
print(sum(20, 30))
  • return 语句
    不使用的话则函数会返回None,与C/C++还是有区别。

切片操作

  • 适用于字符串、元组、列表、集合。

  • 切片格式:

    • [start : end : step]
    • step不可为0,默认为1.
    • 步长方向以start正负为标准。start为正,步长则为正方向;start为负,步长则为负方向。
    • 切片越界不会报错! 越界即只有左端点元素符合要求。
#正向切0,1,2   步长为1
print(ans_list[0:3:1])
#错误用法!
#print(ans_list[0:3:-1])

#反向切-1   步长为向左,1
print(ans_list[-1:0:-1])
#错误用法!
#print(ans_list[-1:0:1])

#省略end与step(step默认1)
print(ans_list[2:])

#省略start与end
print(ans_list[::1])   #正向切片
print(ans_list[::-1])  #反向切片,即向左切片。

python集合

python有四种集合数据类型:

  • 列表(List)是一种有序可更改的集合。允许重复的成员。
  • 元组 (Tuple)是一种有序且* 不可更改 *的集合。允许重复的成员。
  • 集合(Set)是一个无序无索引的集合。没有重复的成员。
  • 词典(Dictionary)是一个无序可变有索引的集合。没有重复的成员。

只有元组,不可更改!

列表

可进行:索引、切片、加、乘、检查成员。

  • 创建:[元素1, 元素2, 元素3, …, 元素n]

  • 访问:索引访问。有负索引(从后往前)。左边第一项索引为0或-n,右边第一项索引为n - 1或-1。

  • 指定范围访问:[left : right] 返回一个新列表 访问范围:[left, right)

  • 遍历:索引遍历。

  • 确定元素是否在列表中: 元素 in 列表名 返回true/false

  • 列表长度:len()方法。

  • 尾部追加元素:append()方法。

  • 指定索引添加元素:insert(index, 元素)方法。

  • 删除指定元素:remove(元素)、 del 列表名[index]

  • 删除指定索引位置元素:pop(index) 如未指定索引,则删除尾部元素。

  • 删除列表: del 列表名

  • 清空列表:clear()

  • 复制列表:

    list2 = list1 只是对列表list1的引用,即list2与list1指向同一内存对象。
    使用
    copy()方法可以复制
    列表。
    使用内置方法list()可以复制列表。

#使用copy()方法
thislist = ["apple", "banana", "cherry"]
mylist = thislist.copy()
#使用list()方法
thislist = ["apple", "banana", "cherry"]
mylist = list(thislist)
  • 合并两个列表

1、+拼接
2、 append()方法,将list2中元素一个个拼接到list1中。
3、extend()方法,将list2中元素一个个拼接到list1中。
区别:append()可以拼接一个元素,也可以拼接一个集合(此时将集合看作是一个元素添加进入。)
而 extend()只可以添加一个集合,且是将两个集合完美拼接。


在这里插入图片描述

  • 也可以使用list()构造方法构造一个list对象。
#创建列表  1)使用[]创建  2)使用list()函数创建。
ans_list = [1, 2, 3]
ans_list = list('123')   #list()函数输入字面量进行创建时,只能输入字符串 且只接收一个参数。
ans_list = list(tup)   #tup:元组。

#统计元素出现个数
ans_list.count()

#返回指定元素索引号码
ans_list.index(element)

#添加元素
ans_list.append(element) #将指定元素添加到列表末尾
ans_list.insert(index, element) #将指定元素添加到指定索引位置

#合并列表(追加元素append())
ans_list.append(any Type element)  #简单追加,即时是列表也将其视作一个元素,整体追加。
ans_list.extend(list Type only)  #将参数list中的元素一个个加入到原list中。  且extend()只可以接收list

#移除元素
ans_list.pop() #默认移除最后位置元素
ans_list.pop(index) #移除指定index位置元素
ans_list.remove(element) #移除指定元素
del ans_list[index]  #移除指定index位置元素

#成员运算符1in ans_list
'1' not in ans_list

#列表运算
###列表相加  即暴力合并
print(ans_list1 + ans_list2) 
###列表相减   不支持!
###列表相乘   不支持!   列表可以乘数字
print(ans_list1 * 2)  #列表中全部元素整体出现2次  [1, 2, 3, 1, 2, 3]
###列表相除   不支持!
##列表逻辑运算
###列表and
print(ans_list1 and ans_list2)  #以最后一个列表/数字/任何值、对象为准
###列表or
print(ans_list1 or ans_list2) #以第一个列表/数字/任何值、对象为准
###列表排序   sort(key=,reverse=)
print(ans_list.sort()) #正序
print(ans_list.sort(reverse=True)) #倒序
print(ans_list.sort(key=len))  #根据元素长度进行排序   python3中取消了cmp参数,也不支持直接向sort中传函数,需要构造#                               排序函数传递给key实现排序规则自定义。
#####这里的cmp传递给key的规则、用法待之后更新。

列表内置方法:
在这里插入图片描述

元组

有序,不可更改! ------->这也是和列表的唯一区别。

#创建
tuple_ = (1, 2, 3)
tuple_1 = (2, 3, 4)
tuple_1 = (1, )  #单个元素时,要有',' 否则会被当做整型处理。
tuple_1 = ()   #空元组
## tuple()函数创建元组   列表、元组、set集合、字典(只会将key转换为元组)、字符串(按位转换)
set_1 = {1, 2, 3, 4, 9, 5}
list_1 = [1, 2, 3, 4, 9, 5]
tuple_1 = (1, 2, 3 ,4 ,5)
dict_1 = {'username': "1111", 'admin': '2222'}
str_1 = 'fghjk_ghjkl-GHJKL;'  
tuple_1 = tuple(list_1)  
tuple_1 = tuple(set_1)
tuple_1 = tuple(tuple_1)
tuple_1 = tuple(dict_1)


#访问也是索引访问,有负索引。
print(tuple_1[1])
	
#可指定索引范围访问,返回一个新元组。【切片】
print(tuple_1[-1, -3, -1])

#元组创建后即不可更改其值,但可将其转换为列表后更改其值。
x = ("apple", "banana", "cherry")
y = list(x)
y[1] = "kiwi"
x = tuple(y)   # ("kiwi", "banana", "cherry")

#遍历可以用for循环

#in关键字与列表用法相同

#长度:len()

#注意,创建仅有一个项目的元组,要在该项目后添加 * 逗号 *。
thistuple = ("apple",)

#不是元组
thistuple = ("apple")

#del可完全删除元组。
del thistuple

#统计元组内元素个数
tuple_1 = (1, 2, 3)
print(tuple_1.count())

# 元组运算:
## +
tuple_1 = (1, 2, 3)
tuple_2 = (4, 5, 6)
print(tuple_1 + tuple_2)   #  输出(1, 2, 3, 4, 5, 6)
## *
tuple_1(1, 2, 3)
print(tuple_1 * 3)  #输出(1, 2, 3, 1, 2, 3, 1, 2, 3)
#元组和元组间不可进行四则运算的 - * / 以及% 取余
#但是可以使用逻辑运算符进行取交、取并。
tuple_ and tuple_1     #交集
tuple_ or  tuple_1     #并集

#元组拆包   即将元组内部每个元素按照位置一一对应的赋值给不同变量     注意!要赋值的变量数量必须严格等于元组内元素数量!
tuple_1 = (1, 2, 3, 4, 'sss', 'aa')
key_1, key_2, key_3, key_4, key_5, key_6 = tuple_1

元组内置方法:
在这里插入图片描述

集合(set)

无序;无法更改已有元素,但是可以添加新元素;无索引。与C++与java中的set集合不同!!!
集合用花括号编写。

#创建集合
	thisset = {1, 2, 3} #集合无序,即输出时无法保证按照输入顺序输出。
	thisset = set()
	thisset = set('1234')   #创建时,是按照单个字符进行创建的{'3', '1', '4', '2'}
	thisset = set([1, 2, 3, 4])  #可以加list集合
	thisset = set(tuple_name)    #也可以加元组
	thisset = set(dict_name)     #只能将字典的键添加进去。
	thisset = set(set_name)      #可以添加set集合
#in   not in 判断元素在不在集合中
	xxx in thisset
	xxx not in thisset

#添加元素
	add()  #添加一个元素
	update()  #添加多个元素
	thisset.update(["orange", "mango", "grapes"])

#获取长度:len()方法
	thisset.len()

#删除元素
	remove()   #元素不存在会报错,返回删除元素。
	discard()  #元素不存在不会报错,返回删除元素。
	pop()      #删除最后一个元素,但集合无序,不确定会删除哪一个!不推荐使用!

#清空集合 
	clear()
#删除集合
	del 集合名

#合并两个集合
	#union()返回一个新集合,包括两个集合中所有项目。
	set1 = {"a", "b" , "c"}
	set2 = {1, 2, 3}
	set3 = set1.union(set2)
	#update() 方法将 set2 中的项目插入 set1 中:
	set1 = {"a", "b" , "c"}
	set2 = {1, 2, 3}
	set1.update(set2)
	#注意,union与udate都排除重复项。

#两个集合求交集
	thisset & otherset
#两个集合求并集(会去重)
	thisset | otherset
#两个集合求差集  求的是被减集合不在减集合中的元素
	thisset - otherset
#更多方法见下方表格。

在这里插入图片描述

字典

无序,可变,有索引

#创建
##创建空字典    字典可以嵌套。
my_dict = {}
my_dict = dict()
##花括号创建
thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
##dict()函数创建
###函数内使用括号成对创建
my_dict = dict((1, 'q'), (3, 'r'))
###函数内使用关键字成对创建
# 请注意,关键字不是字符串字面量,并且不能为数字开头
# 请注意,使用了等号而不是冒号来赋值
my_dict = dict(li='111', zhang='222')

#添加键值对
###已有字典可以直接使用key向其中添加键值对。
my_dict[333] = 'shen'
###或者使用方法setdefault()   如果键存在,则插入 不生效   ,若插入未指定值,则值为None	

#访问
x = thisdict["model"]  #方括号中是键,返回“值”。
x = thisdict.get("model") #与以上方法返回值相同。

#更改值
thisdict["year"] = 2019
##或 update()方法 此方法利用一个字典集合更新另一个字典集合   如项果要更新的元素在原字典里存在,则把原来
# 的项覆盖,如果要更新的元素项在原字 典里不存在,则直接添加进去
thisdict.update(thisdict_2)

#遍历返回键
for x in thisdict:
  print(x)
  
#遍历返回“值”
for x in thisdict:
  print(thisdict[x])
  
#key()方法返回键
print(thisdict.key())

#values()方法返回“值”
for x in thisdict.values():
  print(x)

#items()遍历键和值
for x, y in thisdict.items():
  print(x, y)
  
#get()方法获取指定键对应的值
print(thisdict.get(201))

#in 可确定是否存在指定的键
if "model" in thisdict:

#确定长度
len()

#添加项目
thisdict["today"] = 2020   #若是新键则添加新元素,键已存在则更新键对应的值。

#删除元素  
1.	pop()#删除指定键名元素并返回其对应值  如果没有 key,返回 default 值
2.	popitem() #删除字典中最后一对元素,返回一个键值对(key,value)形式,按照 LIFO(Last In First Out 后进先出法) 顺#              序规则,即最末尾的键值对。  如果字典已经为空,却调用了此方法,就报出KeyError异常。 
#	           3.7前删除随机元素。
3.	del thisdict[”today“] #删除指定键名元素

#删除字典
del 字典名

#清空字典
字典名.clear()
#复制字典
	#不可以直接赋值:dict2 = dict1  因为dict2只会是dict1的引用。
	#使用copy()方法复制
	mydict = thisdict.copy()
	#使用dict()方法创建字典副本
	mydict = dict(thisdict)
#字典可以嵌套

内置方法:
在这里插入图片描述

in 运算符?

range()函数,顺序和倒序生成数列有区别,顺序[],倒序[x + 1,]

set 排序规则源码? 添加进去的元组按照什么规则排序? 还能添加其他什么(元组、字典、list、set?)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值