python基本操作3(速通版)

news/2024/5/19 0:22:49

目录

一、字典

1.字典定义

2.字典的访问

3.字典的遍历

4.字典删除

5.字典练习

6.有序字典

7.集合

8.类型转化问题

9.公共方法

二、列表推导式

1.基本操作

2.在循环中使用if

三、组包和拆包

 1.组包拆包基本应用

2.拆包的字典问题

四、python函数的一些特性

1.函数返回多个数据

2.函数的嵌套调用

3.递归调用

4.变量作用域

5.可变类型和不可变类型

6.函数参数问题

7.可变长参数

结语


一、字典

1.字典定义

#定义字典
d = {}
print(d)
print(type(d))
#key一般情况下使用字符串类型的数据充当,理论上不可变的类型都可以作为key
#只要是可hash的对象都可以作为key


d = {1:"one",2:"two"}
print(d)

d = {"one":"星期一","tow":"星期二"}
print(d)

2.字典的访问


d = {"one":"星期一","two":"星期二","three":"星期三","four":"星期4"}
print(d)

print(d['one'])
print(d['two'])
print(d['three'])

#赋值
d['four'] = '星期四'
print(d)

print("___________________________________________________________________________")
print(d['one'])
print(d.get('one'))

#下标方式在访问数据时,如果key不存在,就会报错
#get方法方式 访问数据时,如果key不存在,返回none
print(d['two'])
print(d.get('two'))
print(d.get("asd"))

3.字典的遍历


d = {"one":"星期一","two":"星期二","three":"星期三","four":"星期4"}

for k in d:
    print(k)

print("____________________________________________________________________")
#方法1
for k in d:
    print(f'for in :  {k} ---> {d[k]}')

print("____________________________________________________________________")
#方法2
print(d.keys())
for k in d.keys():
    print(f'keys :  {k} ---> {d[k]}')

#方法三
print("____________________________________________________________________")
print(d.values())
for v in d.values():
    print(f'values: {v} ')

#方法四  item里面每一个元素都是一个元组
print("____________________________________________________________________")
print(d.items())
for i in d.items():
    print(f' items :  {i[0]} ---> {i[1]}')


print("____________________________________________________________________")
#解包
for k,v in d.items():
    print(f' items :  {k} ---> {v}')

a,b,c,d,e = 1,2,3,4,5
print(a)
print(e)

#解包编写赋值方式
item = (1,2,3,4,5)
a,b,c,d,e = item
print(a)
print(e)

4.字典删除


d = {"one":"星期一","two":"星期二","three":"星期三","four":"星期4"}
#出栈
d.popitem()
print(d)
d.popitem()
print(d)

#pop后面接key可以指定删除的键值对
print("_______________________________________________________________")
d = {"one":"星期一","two":"星期二","three":"星期三","four":"星期4"}

d.pop('one')
print(d)

5.字典练习

def creat_card():
    card = {}
    card['name'] = input("请输入姓名: ")
    card['age'] = input("请输入年龄: ")
    card['address'] = input("请输入地址: ")

    return card

def show_card(card):
    for k in card:
        print(f'{k} : {card.get(k)}')

c = creat_card()

show_card(c)

6.有序字典

构建有序字典

from collections import OrderedDict

my_dict = OrderedDict()

my_dict['one'] = 1
my_dict['two'] = 2
my_dict['three'] = 3
my_dict['four'] = 4
my_dict['five'] = 5
print(my_dict)

7.集合

主要的作用是去重

#集合定义
s = {}
print(type(s))

s = {1,2,2,3,234,4,5,6666,5,5,5}
print(s)

注意集合是不支持下标的

遍历用for in

#集合定义
s = {}
print(type(s))

s = {1,2,2,3,234,4,5,6666,5,5,5}
print(s)

for i in s:
    print(i)

 

8.类型转化问题

s = "hello"

#字符串转化成列表
l = list(s)
print(l)
print(type(l))
print("_______________________________________________________________")
#集合是无序的
l = set(l)
print(l)
print(type(l))

#列表转化集合
print("_______________________________________________________________")
l = list(s)
l1 = set(l)
print(type(l1))
print(l1)

#列表和集合转化成字符串
print("_______________________________________________________________")
l = list(s)
s1 = str(l)
print(type(s1))
print(s1)

l = set(s)
s1 = str(l)
print(type(s1))
print(s1)


但是这里转化成str类型并不是拼接

9.公共方法

s = "hello" + "itcast"
print(s)

s = [1,2,3,4] + [1,23,4,5]
print(s)

s = ('a','b') + ('c','b')
print(s)

s = "h1" * 4
print(s)

 

python内置函数

list1 = [1,23,23,4,111,23,111,4,5]
print(max(list1))
print(min(list1))


二、列表推导式

1.基本操作

创建一个具有一百个数字的列表

#for in
c_1 = []
for i in range(100):
    c_1.append(i)
print(len(c_1))
print(c_1)

print("_________________________________________________________________________")
#推导式
c_1 = [i for i in range(100)]  #注意,表达的变量使用要和循环中的变量一致
print(len(c_1))
print(c_1)

2.在循环中使用if

a = [x for x in range(3,10) if x%2==0]
print(a)

print("______________________________________________________________")

a = [x for x in range(3,10) if x%2!=0]
print(a)

print("______________________________________________________________")

a = [x for x in range(3,10)]
print(a)

3.多个for

#两个for
a = [(x,y) for x in range(1,3) for y in range(3)]
print(a)

print("_____________________________________________________________________________")
#多个for
a = [(x,y,z) for x in range(1,3) for y in range(3) for z in range(5,10) if z%2!=0]
print(a)


三、组包和拆包

 1.组包拆包基本应用

#组包
a = 1,2,3,4,5
print(a)
print(type(a))

#拆包
a,b = 1,2
print(a,b)
print("_________________________________________________")
#注意拆包时,容器中的元素个数要和变量个数相同
a = 1,2,3,4,5
a1,a2,a3,a4,a5 = a
print(a1,'--',a2,'--',a3,'--',a4,'--',a5)

2.拆包的字典问题

a = {'a':1,'b':2,'c':3,'d':4,'e':5}
a1,a2,a3,a4,a5 = a
print(a1,'--',a2,'--',a3,'--',a4,'--',a5)


四、python函数的一些特性

1.函数返回多个数据

求一个列表数据中的最大值和最小值

def get_max_min():
    cl = [1,0,3,4,5,2,3,1,55,43]
    cl.sort()
    max = cl[len(cl) -1]
    min = cl[0]

    return max,min

print(get_max_min())

ret = get_max_min()
print(ret)
print(type(ret))

2.函数的嵌套调用

def func_a():
    print('func A start')
    func_b()
    print('func_a stop')

def func_b():
    print('func b start')
    func_c()
    print('func_b stop')

def func_c():
    print('func c start')
    print('func_c stop')

func_a()

3.递归调用

避免死循环的问题

def factorial(n):
    if n == 1:
        return 1
    return n * factorial(n-1)

n = factorial(5)
print(n)
print("----------------------------------------")
n = factorial(2)
print(n)
print("----------------------------------------")
n = factorial(10)
print(n)

4.变量作用域

#全局变量
num = 100

def func_a():
    print(num)

def func_b():
    #局部变量
    num = 11
    print(num)

func_a()
func_b()

 

全局变量先进入堆空间,所以函数引用的并不一定为初始值

#全局变量
num = 100

def func_a():
    print(num)

def func_b():
    #局部变量
    num = 11
    print(num)

num = 12
def func_c():
    print(num)
func_a()
func_b()
func_c()

函数内部想要修改全局变量,需要加上global

全局变量


num = 100

def func_a():
    print(num)

def func_b():
    #global
    global num
    num = 11
    print(num)

num = 12
def func_c():
    print(num)
func_a()
func_b()
func_c()

 

5.可变类型和不可变类型

 

因为list是可变类型,所以内部函数引用不用提前声明

#全局变量
num = 100
c_list = []

def func_a():
    print(num)
    print(c_list)

def func_b():
    #global
    global num
    num = 11
    c_list.append(100)
    print(num)

num = 12
def func_c():
    print(num)
    print(c_list)
func_a()
func_b()
func_c()


6.函数参数问题

函数中有初始值的参数不能定义在无初始值参数之前

func_a(a,b=0,c):
    print(a,b,c)

func_a(1,2)

传参是可以无序的

def show(n,s):
    print(n,s)

show(1,'hello')
show('hello',1)

传参要注意如果后面引用的类型需要是可迭代类型的就会报错

def show(n,s):
    for c in s:
        print(f'{n} --- {c}')
show(1,"hello")

#这里会报错,因为s要为可迭代的类型后面for in才可以使用
show("hello",1)

赋值时最好标参数名=值

def show(n,s):
    for c in s:
        print(f'{n} --- {c}')
show(s="hello",n=1)

7.可变长参数

相当于一个是列表,一个是字典

def my_f(*args):
    print("_____________________")
    print(args)
    s = 0
    for i in args:
        s += i
    print(s)
my_f(1,2)
my_f(1,23,4,2)
my_f(23,432,211,2,3,4)

混合参数

必须要有位置定义

可变参数二次传递


#元组只是一个对象,虽然闭包了,但是还是会出问题
def show(a,*args,**kwargs):
    print(a)
    print(args)
    display(args)

def display(a,b,c,d,e):
    print("dis:  ",a,b,c,d,e)

show(1,23,4,123,432,1)

我们需要把元组对象分解

#元组只是一个对象,虽然闭包了,但是还是会出问题
def show(a,*args,**kwargs):
    print(a)
    print(args)
    #我们需要解包
    display(*args)

def display(a,b,c,d,e):
    print("dis:  ",a,b,c,d,e)

show(1,23,4,123,432,1)

 


结语

点个👍吧,高强度搬运笔记,还有几万个字。。。。


http://www.niftyadmin.cn/n/393854.html

相关文章

文件与文件系统的打包、压缩、备份

Linux常见的压缩指令 常见压缩文件拓展名 *.Zcompress 程序压缩的文件*.zipzip 程序压缩的文件*.gzgzip 程序压缩的文件*.bz2bzip2 程序压缩的文件*.xzxz 程序压缩的文件*.tartar 程序打包的数据,未经压缩*.tar.gztar 程序打包的数据,并经过gzip的压缩…

局域网技术

共享信道的分配技术是局域网的核心技术,而这一技术又与网络的拓扑结构和传输介质有关。 拓扑结构: 1.总线型拓扑: 总线一种多点广播介质,所有的站点通过接口硬件连接到总线上。 传输介质主要是同轴电缆(基带和宽带…

Linux 实操篇-网络配置

Linux 实操篇-网络配置 Linux 网络配置原理图 查看网络IP 和网关 查看虚拟网络编辑器和修改IP 地址 查看网关 查看windows 环境的中VMnet8 网络配置(ipconfig 指令) 查看linux 的网络配置ifconfig ping 测试主机之间网络连通性 基本语法 ping 目的主机(功能描述…

Anolis OS8 磁盘扩容

最近学习的时候,使用Vmware安装了AnolisOS8进行测试,随着学习的深入,组件安装越来越多,磁盘不够用了,但是安装的组件又太多,重新装个虚拟机又得重新装各种组件。所以决定对磁盘进行扩容,在这里做…

JavaScript实现100以内奇数和的代码

以下为实现100以内奇数和的程序代码和运行截图 目录 前言 一、100以内奇数和 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 前言 1.若有选择,您可以在目录里进行快速查找; 2.本博文代码可以根据题目要求实现相关使用功能…

shell编程lesson09

位置参数 之前一直没有涉及程序接收和处理命令行选项及实参的能力,本节将介绍程序访问命令行内容的shell功能 访问命令行 shell提供了一组名为位置参数的变量,用于存储命令行中的关键字,这些变量分别命名0~9,可以通过以下方式访问…

chatgpt赋能python:Python只取小数

Python只取小数 Python是一种高级编程语言,被广泛应用于数据科学、人工智能、Web开发等领域。在数据分析和计算中,往往需要只保留小数,本文将介绍如何使用Python只取小数,并提供相关代码。 什么是小数? 在数学中&#xff0c…

C#,码海拾贝(33)——约化“一般实矩阵”为“赫申伯格矩阵”的“初等相似变换法”之C#源代码,《C#数值计算算法编程》源代码升级改进版

using System; namespace Zhou.CSharp.Algorithm { /// <summary> /// 矩阵类 /// 作者&#xff1a;周长发 /// 改进&#xff1a;深度混淆 /// https://blog.csdn.net/beijinghorn /// </summary> public partial class Matrix {…