Python基本功

news2024/11/20 14:25:45

任何工作,没别的,就是苦练基本功,在篮球场上,我常用非常简单的基本功就可以克敌制胜,工作中也是如此

字符串

  1. 1:字符串拼接
a="'人民'"
b=123
print("我是"+a+""+str(b))

2:字符串格式化

year=1949
name='人民'
sport='站起来了'
print("%s中国%s从今以后%s "%(year,name,sport))

将数字进行了格式化,同时简单方便。

  1. 3:字符串的格式化精度控制

在这里插入图片描述
!](https://img-blog.csdnimg.cn/45d6102a84504abfb97735abb07c9156.png)

a=12.456
print("%5.1f" %a)

#快速占位符
适合对精度没有要求的可以快速进行格式化

year='新年'
price='123'
print(f"你好{year},挣了{price}钱")
  1. 对表达式格式化

在这里插入图片描述

数据输入

print("告诉我你是谁?")
name=input()
print(f"我知道了,你的名字是{name}")


name1=input("告诉我你的名字是什么?\n")
print(f"我知道了,你的名字是{name1}")

在这里插入图片描述

range

在这里插入图片描述

continue 和break的使用

break和continue生效范围是一样的,只是continue会继续执行
,详情可见下面两张图
在这里插入图片描述
在这里插入图片描述

Python函数

在这里插入图片描述
通过global关键字来修改
在这里插入图片描述

python数据容器

数据容器有以下特点
1:是否支持重复元素
2:是否可以修改
3:是否有序

分为5类,分别是list,元祖tuple,字符串str,集合set ,字典dict
容器的定义,一次性可以存储多个数据

list

1:存储的元素类型是不受限制的
2:列表里面再次嵌入列表叫作嵌套

如何取出数据
1:通过索引
正向下标,和反向下标
注意:不要超出索引范围。

列表的常用操作

name_list=['wang','liu']
print(name_list)
#查询
# 结果为0
print(name_list.index('wang'))
#输出异常,会断掉
#print(name_list.index('wan'))
#修改
name_list[0]='yao'
print(f"修改后的结果{name_list}")
#插入元素
#插入元素后,元素占据指定的位置
#['yao', 'ma', 'liu']
name_list.insert(1,'ma')
print(name_list)

#追加元素,是追加到元素的尾部
#['yao', 'ma', 'liu', 'xiao']
name_list.append('xiao')
print(name_list)
#第二种方法,使用extend将其他的列表追加到尾部
#['yao', 'ma', 'liu', 'xiao', 'zhao', 'qian', 'sun', 'li']
name_list2=["zhao","qian","sun","li"]
name_list.extend(name_list2)
print(name_list)

#元素的删除
#li 被删除
#['yao', 'ma', 'liu', 'xiao', 'zhao', 'qian', 'sun']
del name_list[7]
print(name_list)
#del仅仅能够删除元素,没法得到删除的值
name=name_list.pop(6)
#sun被删除
#['yao', 'ma', 'liu', 'xiao', 'zhao', 'qian']
print(name_list)
#sun 可以得到一个返回值
print(name)

#删除元素的内容
#删除第一个元素
name_list.extend(name_list2)
#['yao', 'ma', 'liu', 'xiao', 'zhao', 'qian', 'zhao', 'qian', 'sun', 'li']
print(name_list)
name_list.remove('zhao')
#['yao', 'ma', 'liu', 'xiao', 'zhao', 'qian', 'zhao', 'qian', 'sun', 'li']
#第一个zhao被删除

#清空整个列表
name_list.clear()
#[] 得到了一个空列表
print(name_list)

#统计元素的数量
name_list=['yao', 'ma', 'liu', 'xiao', 'zhao', 'qian', 'zhao', 'qian', 'sun', 'li']
#1 得到了yao的数量
print(name_list.count('yao'))

#统计列表长度
#10
print(len(name_list))
#反转
name_list.reverse()
#['li', 'sun', 'qian', 'zhao', 'qian', 'zhao', 'xiao', 'liu', 'ma', 'yao']
print(name_list)

#列表的遍历
#两种方式可以获取到
def list_while_func():
    index=0
    while index < len(name_list):
        print(f"{name_list[index]}")
        index+=1
list_while_func()
def list_for_func():
    for i in name_list:
        print(i)
list_for_func()

元组,

列表可以被修改,元组不可以被修改,只读的list

t=('zhang','liu','li','zhang','liu','li')
print(len(t)) #6
print(t.count('zhang')) #2
print(t.index('zhang')) #0
#不可以修改,(增加或者删除元素)
#支持for循环
#元组里面如果嵌套了list,那么是可以修改的

字符串

#字符串的操作
#字符串是不可修改的
my_str="happy days everyday"
#如下开始证明
#my_str[2]='H'
"""
Traceback (most recent call last):
  File "D:\code\python\venv\Scripts\5.py", line 5, in <module>
    my_str[2]='H'
TypeError: 'str' object does not support item assignment
"""

#查找特定的数据
print(my_str.index('days'))
#结果为6

#字符串的替换
#replace方法是得到了一个新的字符串,而不是修改了原来的字符串。
my_replace_str=my_str.replace('h','H')
#结果为happy days everyday
print(my_str)
#结果为Happy days everyday
print(my_replace_str)

#字符串的分割
#按照指定的分割字符串,将字符串划分为多个字符串,并入列表中,
#字符串本身不会变,而是得到了一个列表对象


my_str_list=my_str.split(" ")
#得到了这样的一个list,原来的并没有被改变
#['happy', 'days', 'everyday']
print(my_str_list)

my_str_strip=my_str.strip("h")
#只能对头和尾部进行操作
#appy days everyday
print(my_str_strip)

#统计字符串某个字符出现的次数
print(my_str.count('ay'))
#2

#查看长度
print(len(my_str))



切片操作

其他的如str和列表以及元组都支持切片,在这里不一一练习了

#序列的切片操作
#起始下标,结束下标,步长
#切片后会得到一个新的序列,并不会改变原来的
my_list=[1,2,3,4,5,6,7,8]

my_new_list=my_list[0:8:2]
#输出结果为[1, 3, 5, 7]
print(my_new_list)

my_tuple=(0,1,2,3,4,5,6)
my_new_tuple=my_tuple[-1:-6:-1]
#输出结果为(6, 5, 4, 3, 2)
print(my_new_tuple)

集合

#集合

#集合不支持重复元素
my_set={3,1,2,3,2,3,3}
#{1, 2, 3}
#内容是无序的,不支持下标索引访问,因为一旦发生改变,下标就会全部改变。序列的操作不支持集合,集合是允许修改的。
print(my_set)
#添加新元素

my_set.add(4)
#结果为{1, 2, 3, 4}
print(f"{my_set}")

#移除元素
my_set.remove(1)
{2, 3, 4}
print(my_set)


element=my_set.pop()
#随机取出一个
print(element)
#my_set的值也会发生改变
print(my_set)


#清空方法
my_set.clear()
set()
print(my_set)

my_set={3,1,2,3,2,3,3}

#取出差集

set1={1,2,3}
set2={1,5,6}
set3=set1.difference(set2)
#查找到1里面有的,2里面没有的,set2和set1的结果不会发生变化
{2, 3}
print(set3)

#消除差集
#以集合1为标准,删除1和2里面相同的
print(f"取出集合1的值{set1}")
set1.difference_update(set2)
#将两者之间的1给删除掉{2, 3}
print(set1)
#集合2未发生变化{1, 5, 6}
print(set2)

#合并的功能
#{1, 2, 3, 5, 6}
print(set1.union(set2))



字典

#字典
#字典和集合非常像,集合不允许重复的。字典的key也是不允许重复的
my_dict1={"wang":"99","zhang":"66","gong":"77","liu":"44"}


#重复的key值只会存在一个
my_dict2={"wang":"79","wang":"99","zhang":"66","gong":"77","liu":"44"}

print(my_dict2)  #新的值会替换掉旧的{'wang': '99', 'zhang': '66', 'gong': '77', 'liu': '44'}


#获取key后面的值
print(my_dict1['wang'])  #99


#新增的key存在,就是新增,如果存在,就是更新
my_dict1['xiao']=78
print(my_dict1) #{'wang': '99', 'zhang': '66', 'gong': '77', 'liu': '44', 'xiao': 78}

#更新
my_dict1['xiao']=90
print(my_dict1) #{'wang': '99', 'zhang': '66', 'gong': '77', 'liu': '44', 'xiao': 90}

#删除
x=my_dict1.pop('xiao')
print(my_dict1) #{'wang': '99', 'zhang': '66', 'gong': '77', 'liu': '44'}
print(x) #90


#清空元素
my_dict1.clear()
print(my_dict1) #{}
#查看所有的key
print(my_dict2.keys())  #dict_keys(['wang', 'zhang', 'gong', 'liu'])

#遍历字典
for key in my_dict2.keys():
    print(my_dict2[key]) # 99
#66
#77
#44


#统计字典内的所有信息
print(my_dict2.items()) #dict_items([('wang', '99'), ('zhang', '66'), ('gong', '77'), ('liu', '44')])

print(len(my_dict2)) #4个元素



数据类型分类

在这里插入图片描述

在这里插入图片描述

数据容器的通用操作

#数据容器的通用操作-遍历
#都支持遍历操作,都支持len,max,min
#支持排序操作
my_list=[9,1,2,3,4,5,6,7]
my_set={9,1,2,3,4,5,6,7}

my_tuple=(3,1,2,5,4)
my_list.sort()
sorted(my_list)
sorted(my_tuple,reverse=True)
sorted(my_set)
print(my_set)
print(sorted(my_tuple))
#sorted是对内容进行排序,返回一个列表
#tuple因为具有不被修改的特性,所以不会被改变

函数的参数传递


#函数
#设置默认值参数得放在最后面
'''
def user_info(name,age,gender="男"):
    print(f"姓名是{name},年龄是{age},性别是{gender}")


user_info('wang',14)

#不定长,  位置不定长 *号
#不定长参数也叫可变参数,用于不确定调用的时候会传递多少个参数,
#作用:当调用参数时不确定参数个数时,可以使用不定长参数
'''
#不定长参数的类型
#位置传递,关键字传递
'''
'''
#第一种位置传递
def user_info(*args):
    print(args)
    return  args

#当使用不定长时,args默认会标记为元组,传递参数的时候会传递到元组里面去
a=user_info(18)
b=user_info('wang',18)
print(type(b))  #<class 'tuple'>

#关键字传递的不定长
#数量也是不受限的,但同时也必须满足key=value的形式来让keyargs来接受
def user_info1(**kwargs):
    print(kwargs)
    return kwargs
a=user_info1(name='wang',id=112,age=18) #{'name': 'wang', 'id': 112, 'age': 18}
print(type(a)) #<class 'dict'>

lambda函数

#关键字传递的不定长
#数量也是不受限的,但同时也必须满足key=value的形式来让keyargs来接受
def user_info1(**kwargs):
    print(kwargs)
    return kwargs
a=user_info1(name='wang',id=112,age=18) #{'name': 'wang', 'id': 112, 'age': 18}
print(type(a)) #<class 'dict'>


#匿名函数 就是没有名称
#有名称的函数,可以基于名称重复使用。无名称的函数,只能临时使用一次
#使用场景见如下
#lambda 传入参数:函数体
my_list=[1,2,3,4]
def test(x):
    result=x(2)
    return result


#print(test(my_list[2]))TypeError: 'int' object is not callable
print(test(lambda x:x*2))#test里面的参数必须得是一个函数的地址 #总结lamdba使用的本质为将函数的地址传递给另外一个函数。非常简单好用
#lambad函数提升了一些应用场景,简洁明了
#如果该函数如果需要使用多次,那么就用def,只使用一次就用lambda

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1064397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c语言 任意进制数的转换

/* 函数trans将无符号整数n翻译成d&#xff08;2<&#xff1d;d<&#xff1d;16&#xff09;进制表示的字符串s */ #define M sizeof(unsigned int)*8 int trans(unsigned n, int d, char s[]) {static char digits[] "0123456789ABCDEF"; /* 十六进制数字的字…

数据中台实战(06)-数据模型无法复用,归根结底还是设计问题

指标比喻成一棵树的果实&#xff0c;模型就是这棵大树的躯干&#xff0c;想果实好&#xff0c;须让树干粗壮。 1 痛点 分析师一般结合业务做数分&#xff08;需用大量数据&#xff09;&#xff0c;通过报表服务于业务部门运营。但数据中台构建前&#xff0c;分析师经常发现自…

SNP Glue:SAP数据导入到其他系统的多种方式

SAP是一款功能强大的企业资源计划&#xff08;ERP&#xff09;软件&#xff0c;许多企业依赖SAP来管理和处理其核心业务数据。然而&#xff0c;有时候企业需要将SAP中的数据导入到其他系统中&#xff0c;以实现更广泛的数据共享和集成&#xff0c;便于企业实现数据智能。本文将…

IDEA添加Vue文件模板

代码模板&#xff1a; <!-- *${COMPONENT_NAME} *author niemengshi *date ${DATE} ${TIME} --> <template> #[[$END$]]# </template> <script> export default { name: "${COMPONENT_NAME}", props: { }, components: {}, mounted: {}, d…

战火使命ssr排名,战火使命角色强度排行

在战火使命中&#xff0c;很多玩家都在关注SSR角色的强度排行&#xff0c;那么&#xff0c;下面就为大家分享一下小编整理的最新战火使命ssr排名&#xff0c;一起来看看吧。 关注【娱乐天梯】&#xff0c;获取内部福利号 一、SSR角色排名榜&#xff1a; 1. 克拉拉、艾蕾娜、杰西…

C++深入学习part_1

Linux下编译C程序 安装g命令&#xff1a;sudo apt install g 编译命令&#xff1a;$ g *.cc 或者 *.cpp -o fileName; hellworld 编译程序可以看到&#xff1a; namespace命名空间 首先&#xff0c;命名空间的提出是为了防止变量重名冲突而设置的。 浅浅试一下&#xff1…

2023年【高处安装、维护、拆除】考试题及高处安装、维护、拆除最新解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 高处安装、维护、拆除考试题考前必练&#xff01;安全生产模拟考试一点通每个月更新高处安装、维护、拆除最新解析题目及答案&#xff01;多做几遍&#xff0c;其实通过高处安装、维护、拆除考试资料很简单。 1、【单…

OpenCV C++ Look Up Table(查找表)

OpenCV C Look Up Table&#xff08;查找表&#xff09; 引言 在图像处理和计算机视觉中&#xff0c;查找表&#xff08;Look Up Table, LUT&#xff09;是一种非常高效和实用的方法&#xff0c;用于快速地映射或更改图像的颜色和像素值。LUT 能够极大地提高图像处理算法的执…

XSS CSRF

XSS & CSRF xss&#xff1a;跨站脚本攻击&#xff1a;注入一些非法的脚本 csrf&#xff1a;冒充身份 XSS 反射型 /welcome&#xff1a;res.send(req.query.type) 输入什么就输出什么&#xff08;httpOnly:false&#xff0c;但不是解决方案&#xff09; 比如&#xff1a;?&…

【C语言|关键字】C语言32个关键字详解

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

不断优化的素数算法

前言&#xff1a;素数判断是算法中重要的一环&#xff0c;掌握优秀的素数判断方法是算法player的必修课。本文介绍的是由简到繁的素数算法&#xff0c;便于初学者从入门到精通。 素数&#xff08;质数&#xff09;&#xff1a;只能被 1 和它本身整除的数称作素数&#xff0c;如…

【Linux学习】05-2Linux上部署项目

Linux&#xff08;B站黑马&#xff09;学习笔记 01Linux初识与安装 02Linux基础命令 03Linux用户和权限 04Linux实用操作 05-1Linux上安装部署各类软件 05-2Linux上部署项目 文章目录 Linux&#xff08;B站黑马&#xff09;学习笔记前言05-2Linux上部署项目部署Springboot项目…

【AI视野·今日Sound 声学论文速览 第二十期】Fri, 6 Oct 2023

AI视野今日CS.Sound 声学论文速览 Fri, 6 Oct 2023 Totally 6 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Deep Generative Models of Music Expectation Authors Ninon Liz Masclef, T. Anderson Keller对音乐的情感反应的一个重要理论围绕着惊喜…

时间序列常用数据处理

1.组合技巧Compose 1.2 实例应用及其解释 # 用于组合多个数据处理方法 class Compose(object):def __init__(self, transforms):self.transforms transformsdef __call__(self, seq):for t in self.transforms:seq t(seq)return seq 这段Python代码定义了一个名为Compose的…

星火大模型AI接口Spring中项目中使用【星火、AIGC】

星火大模型AI接口使用 讯飞的星火大模型是有免费版本赠送200万个Token&#xff0c;就个人学习来说完全够用了。 免费申请过后&#xff0c;到控制台&#xff0c;两个红色方框是最要紧的。 星火认知大模型Web文档 | 讯飞开放平台文档中心 (xfyun.cn)这是官方文档对于接口的详细使…

【AI视野·今日NLP 自然语言处理论文速览 四十九期】Fri, 6 Oct 2023

AI视野今日CS.NLP 自然语言处理论文速览 Fri, 6 Oct 2023 Totally 44 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers MathCoder: Seamless Code Integration in LLMs for Enhanced Mathematical Reasoning Authors Ke Wang, Houxi…

如何一键转发朋友圈,快速跟圈?

你是否曾为在微信上快速转发别人的朋友圈而烦恼&#xff1f;每天都要花费大量时间下载商品图片和复制粘贴商家的文案&#xff0c;让人疲惫不堪。我觉得这样太繁琐太麻烦了&#xff0c;每天都会上新货&#xff0c;上传朋友圈都要花将近一个小时的时间&#xff0c;花了大量时间在…

【C++设计模式之状态模式:行为型】分析及示例

简介 状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许对象在内部状态改变时改变其行为&#xff0c;看起来就像是改变了其类。状态模式将对象的状态封装成不同的类&#xff0c;并使得对象在不同状态下有不同的行为。 描述 状态模式通过…

C++ 类和对象篇(五) 析构函数

目录 一、概念 1. 析构函数是什么&#xff1f; 2. 为什么要有析构函数&#xff1f; 3. 怎么用析构函数&#xff1f; 3.1 创建析构函数 3.2 调用析构函数 二、特性 三、由编译器生成的默认析构函数 四、对象的析构顺序 1. 局部对象 2. new出来的堆对象 3. 全局对象 一、概念 1…

Linux指令示范(1)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇