python代码学习1

news2024/11/16 19:47:24

\n 换行符号

\r 回车

\b 后退一个格

\t 制表符(4个字符为一组,当不字符被占有时,重新生成一个制表符。如果被占据,不满4个字符时,生成剩余部分空格。)

#原字符 不希望字符串中转义字符起作用,字符串前加r或R
print(r'hello \r \t world')
import keyword#查询关键字
print(keyword.kwlist)
print(0b101)#0b是二进制
print(0o21)#0o是八进制
print(0x21)#0x是十六进制
n1 = 1.1
n2 = 2.2
print(n1+n2)#3.3000000000000003 二进制存储,存储浮点数有误差
from decimal import Decimal
print(Decimal('1.1')+Decimal('1.2'))#2.3
print(1%3)#取余
print(11//2)#整除
print(2**3)#次方

for 和while 使用else,但运行中没有遇到break时,循环正常循环次数后,就会执行else语句。

for item in range(3):
    pwd = input('输入密码')
    if pwd == '9999':
        print('密码正确')
        break
    else:
        print('密码错误')
else:
    print('三次密码错误')
a = 0
while a < 3:
    pwd = input('输入密码')
    if pwd == '999':
        print('密码正确')
        break
    else:
        print('密码不正确')
    a+=1
else:
    print('密码三次输出错误')

二重循环中break和continue用于控制本层循环。

列表

lst = [ 23,‘SD’,‘EW4’] list内置函数创建列表 lst2 = list([112,313,‘dsd’])

列表元素按顺序有序排列

索引映射唯一数据

列表可以存储重复数据

任意数据类型混存

根据需要动态分配和回收内存

lst = ['hello','world',98,'hello']
print(lst.index('hello'))#如果列表中有相同元素,只返回相同元素的第一个元素索引
print(lst.index('hello',1,4))#从1到3寻找元素

列表名[start:stop:step]左闭右开区间 产生一个新的列表

list[-1: -3:-1]

元素 not in / in 列表名

for i in lst:
    print(i)

append()不产生新列表,在原列表中添加新元素 将列表作为一个元素

extend()将列表中元素作为扩充对象

insert()在列表任意位置添加一个元素

lst = ['hell',3,'dfe']
lst2 = ['hello','world']
lst.append(lst2)
print(lst)
lst.extend(lst2)
print(lst)

['hell', 3, 'dfe', ['hello', 'world'], 'hello', 'world']


#切片添加元素
lst = ['hell',3,'dfe']
lst3 =[True,False,'hello']
lst[1:1]=lst3
print(lst)  ['hell', True, False, 'hello', 3, 'dfe']
lst = [10,20,30,40,50,60,30]
lst.remove(30)#从列表中移除一个元素,如果有重复元素只移除第一个元素
print(lst) [10, 20, 40, 50, 60, 30]

lst.pop(1)#根据索引移除元素 [10, 30, 40, 50, 60,30]
lst.pop()#如果没有索引,则移除最后一个元素[10, 30, 40, 50, 60]
print(lst)

lst[1:3] = []
print(lst) [10, 40, 50, 60, 30]

lst.clear()#清除列表元素
print(lst)

del lst #删除列表
print(lst)
lst = [10,20,30,40]
lst[2] = 100
print(lst) [10, 20, 100, 40]
lst[1:3]=[200,300,400]
print(lst) [10, 200, 300, 400, 40]
lst.sort()#调用列表对象的sort方法,在原列表上升序排列
print(lst)  [10, 20, 30, 40]
lst.sort(reverse=True)降序排列
print(lst)  [40, 30, 20, 10]

lst = [20,40,10,98,54] 
#new_list = sorted(lst,reverse=True)降序排列
new_list = sorted(lst)#产生新的列表进行排序
print(lst)  [20, 40, 10, 98, 54]
print(new_list)  [10, 20, 40, 54, 98]

列表生成式:

lst3 = [i for i in range(1,10)]
print(lst3)

在这里插入图片描述

字典

字典是一个无序序列,以键值对的方式存储 根据hash函数存储位置 存储不可变的序列

键可以不可重复,值可重复,如果出现重复,就会值覆盖 键是不可变对象

空间动态伸缩 会浪费大量空间,用空间换时间的方法。

scores = {'张三':100,'李四':98,'王五':45}
a = dict(name = 'jack',age = 20)
print(scores['张三'])#如果找不到,则为KeyError
print(a['name'])
print(scores.get('张三'))  #如何找不到,则为None
print(scores.get('麻七',99))#如果寻找value不存在,则提供一个默认值
print('张三' in scores)
print('张三'not in scores)
del scores['张三']
print(scores) {'李四': 98, '王五': 45}

scores.clear()#	清空
print(scores) {}
scores['陈六'] = 98
print(scores)  {'张三': 100, '李四': 98, '王五': 45, '陈六': 98}
scores['陈六'] = 100  #修改
print(scores) {'张三': 100, '李四': 98, '王五': 45, '陈六': 100}
keys = scores.keys()
print(keys)#获得所有键值
values = scores.values()
print(values)#获得所有值
items = scores.items()#获得所有键值对
print(items)
for item in scores:
    print(item) 输出所有键
张三
李四
王五
for item in scores:
    print(scores[item],scores.get(item))#获取值的两种方法
100 100
98 98
45 45
items = ['fruit','books','others']
prices = [96,78,85]
d = {item.upper():price for item, price in zip(items,prices)}
print(d)  {'FRUIT': 96, 'BOOKS': 78, 'OTHERS': 85}

在这里插入图片描述

元组

不可变序列 (不可变序列(元组和字符串)没有增删改操作。

可变序列(集合,列表和字典)具有增删改操作,对象地址不发生改变

可变序列

lst = [10,20,30]
print(id(lst))2118426108736
lst.append(100)
print(id(lst))2118426108736

不可变序列

s = 'fdjsf'
print(id(s))  1547348002992
s = s+'de'
print(id(s))  1547351023280

元组

t0 = ('python','world',98)
t1 = 'python','world',98 #省略括号
t3 = tuple(('python','world',98))
#如果只包含一个元组的元素需要使用逗号和小括号
t = (10,)
#空列表
lst=[]
lst1 = list()
#空字典
d ={}
d2 = dict()
#空元组
t4 = ()
t5 = tuple()

为什么将元组设计为不可变序列

在多任务环境下,同时操作对象时不需要加锁

元组中存储的是对象的引用

如果元组中对象本身不可变对象,则不能再引用其他对象

如果元组中对象是可变对象,则可变对象的引用不允许改变,但数据可以改变

在这里插入图片描述

t = (10,[20,30],9)
print(t)
t[1].append(100)
print(t)
t = ('Python','world',98)
for item in t:
    print(item)
Python
world
98

集合

没有value的字典 hash函数计算来存储 存储内容不重复

s = {5,1,2,12,12,51,6,2}
print(s) {1, 2, 51, 5, 6, 12}

s1 = set(range(6))
print(s1){0, 1, 2, 3, 4, 5}

将列表中元素转为集合类型
vs1 = set([1,2,2,4,5])
print(s1)  {1, 2, 4, 5}

将元组元素转为集合类型
s1 = set((1,2,2,4,5))
print(s1) {1, 2, 4, 5}

将字符串元素转为集合类型
s1 = set('python')
print(s1) {'y', 'o', 'p', 't', 'n', 'h'}

将集合转为集合类型
s1 = set({1,2,5,5,6,4})
print(s1) {1, 2, 4, 5, 6}

set()定义新集合,{}定义为字典

s1 = {1,5,2,10,15}
print(10 in s1)
print(100 in s1)
True
False
s1 = {1,5,2,10,15}
s1.add(100) #add一次只添加一个元素
print(s1)
s1.update({200,300,400}) #update一次添加至少一个元素
s1.update([20,30,40])
s1.update((12,33,44))
print(s1) {1, 2, 33, 100, 5, 200, 40, 10, 300, 12, 44, 15, 400, 20, 30}
s1 = {1,5,2,10,15}
s1.remove(10) #一次删除一个指定元素,如果指定的元素不存在 则抛出KeyError
print(s1) {1, 2, 5, 15}
s1.discard(5)#一次删除一个指定元素,如果指定元素不存在,不抛出异常
print(s1) {1, 2, 15}
s1.pop()#一次删除一个任意元素
print(s1) {2, 15}
s1.clear() #清除所有元素
print(s1) set()
s1 = {1,5,2,10,15}
s2 = {1,5,10,15}
print(s1==s2)
print(s1!=s2)
False
True

s1 = {1,5,2,10,15}
s2 = {1,5,10,15}
print(s2.issubset(s1))True

print(s1.issuperset(s2))True

print(s1.isdisjoint(s2))False  有交集为false 没有交集为true

在这里插入图片描述

s1 = {1,5,2,10,15}
s2 = {1,5,10,15}
#(1)交集
print(s1.intersection(s2))
print(s1 & s2)
#(2)并集
print(s1.union(s2))
print(s1 | s2)
#(3)差集
print(s1.difference(s2))
print(s1 - s2)
#(4)对称差
print(s1.symmetric_difference(s2))
print(s1 ^ s2)
s = {i for i in range(10)} 集合生成式
print(s)

在这里插入图片描述
在这里插入图片描述

字符串

不可变字符序列,

字符串具有驻留机制,对相同字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是将该字符串的地址赋予新创建的变量。

s = 'hello,hello'
print(s.index('lo'))#查找第一次出现的字符,不存在,则返回ValueError
print(s.find('lo'))#查找第一次出现的字符,不存在,则返回-1
print(s.rindex('lo'))#查找最后一次出现的字符,不存在,则返回ValueError
print(s.rfind('lo'))#查找最后一次出现的字符,不存在,则返回-1

大小写转化操作

s = 'hello,hello'
a = s.upper() #s字符串大小写不变  转化为大写
print(a) HELLO,HELLO 产生一个新的字符串
s = 'hello,hello'
a = s.lower()转换为小写 产生一个新的字符串
print(a) hello,hello 
s = 'hello,Python'
a = s.swapcase() 大小写互换
print(a)HELLO,pYTHON
s = 'hello,Python'
a = s.capitalize()把第一个字符转化为大写,其余转化为小写
print(a)Hello,python
s = 'hello,python'
a = s.title() 把每个单词的第一个字符转化为大写,把其他字符转化为小写
print(a) Hello,Python

字符串内容对齐操作

s = 'hello,python'
print(s.center(20,"*"))#居中对齐
print(s.ljust(20,"*"))#左对齐
print(s.rjust(20,'*'))#右对齐
print(s.zfill(20))#用0进行填充的右对齐

****hello,python****
hello,python********
********hello,python
00000000hello,python

字符串的劈分

s = 'hello python'
lst = s.split()
print(lst)
s = 'hello|world|python'
lst1 = s.split(sep="|")#从左边开始劈分,默认为空格为劈分,sep指定劈分符号 maxsplit为最大劈分次数
print(lst1)
print(s.split(sep='|',maxsplit=1))


print(s.rsplit(sep="|",maxsplit=1))#从右侧开始劈分,默认为空格为劈分,sep指定劈分符号 maxsplit为最大劈分次数

字符串判断方法

在这里插入图片描述

字符串的替换和合并

s = 'hello,python'
print(s.replace('python','java'))被替换字符 替换字符 最大替换次数
hello,java
s = 'hello,python python python'
print(s.replace('python','java',2)) hello,java java python
s = ['hello','java','Python']
print('|'.join(s))  join将列表元组中字符串合成为一个字符串
print(''.join(s))

t = ('hello','java','Python')
print(''.join(t))

print('*'.join('Python'))

hello|java|Python
hellojavaPython
hellojavaPython
P*y*t*h*o*n

字符串比较

print('apple'>'app')
print('apple'>'banana')原始值比较 97>98 False 
True
False

== 比较的是value相等

is 比较的是id是否相等

字符串切片

切片产生新的对象

s = 'hello,Python' 切片[start:end:step]
s1 = s[:5]
s2 = s[6:]
s3 = '!'
print(s1)
print(s2)
print(s1+s3+s2)

hello
Python
hello!Python

print(s[::-1]) nohtyP,olleh

格式化字符串

%为占位符

#(1)%
name = 'aaa'
age = 20
print('我叫%s,今年%d' % (name,age))

{}为占位符

name = 'aaa'
age = 20
print('我叫{0},今年{1}'.format (name,age))
print('{0:.3}'.format(3.14159))# .3表示一共3位数 
print('{0:10.3f}'.format(3.14159)) 10宽度 .3f表示3位小数

f-string为占位符

name = 'aaa'
age = 20
print(f'我叫{name},今年{age}')

print('我叫%10s,今年%.3f' % (name,age)) #10表示宽度 .3浮点数后三位
print('%10.3f'%3.1415926)
我叫       aaa,今年20.000
     3.142

]
s2 = s[6:]
s3 = ‘!’
print(s1)
print(s2)
print(s1+s3+s2)

hello
Python
hello!Python

print(s[::-1]) nohtyP,olleh


## 格式化字符串

%为占位符

#(1)%
name = ‘aaa’
age = 20
print(‘我叫%s,今年%d’ % (name,age))


{}为占位符

name = ‘aaa’
age = 20
print(‘我叫{0},今年{1}’.format (name,age))
print(‘{0:.3}’.format(3.14159))# .3表示一共3位数
print(‘{0:10.3f}’.format(3.14159)) 10宽度 .3f表示3位小数


f-string为占位符

name = ‘aaa’
age = 20
print(f’我叫{name},今年{age}')


print(‘我叫%10s,今年%.3f’ % (name,age)) #10表示宽度 .3浮点数后三位
print(‘%10.3f’%3.1415926)
我叫 aaa,今年20.000
3.142

![在这里插入图片描述](https://img-blog.csdnimg.cn/2e7300dadf204e54bdc923fed3b790ab.png#pic_center)

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

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

相关文章

FME Server 无代码环境中自动化您数据和应用集成工作流

专为现代企业打造 简化数据和应用程序集成&#xff0c;让您的数据为您所用。在FME Desktop中创作工作流&#xff0c;并使用 FME Server 将其自动化&#xff0c;以按计划或响应事件运行数据集成。 构建无代码 Web 应用程序&#xff0c;提供自助式数据提交和验证&#xff0c;并向…

Java学习之动态绑定机制

目录 举例说明 父类 子类 main类 运行结果 ​编辑 动态绑定 举例说明 父类 子类 main类 分析 运行结果 Java重要特性&#xff1a;动态绑定机制&#xff08;非常重要&#xff09; 举例说明 父类 class A {//父类public int i 10;public int sum() {return getI(…

2022年11月国产数据库大事记-墨天轮

本文为墨天轮社区整理的2022年11月国产数据库大事件和重要产品发布消息。 文章目录11月国产数据库大事记&#xff08;时间线&#xff09;产品/版本发布兼容认证排行榜新增数据库11月国产数据库大事记&#xff08;时间线&#xff09; 11月1日&#xff0c;国际知名研究机构 IDC …

什么是内存对齐

内存对齐 什么是内存对齐为什么要内存对齐内存对齐的规则结构体中内存对齐 sizeof无嵌套有嵌套 iOS中对象内存对齐 iOS中获取内存大小方式 class_getInstanceSize()malloc_size() iOS中内存对齐 实际占用内存对齐方式系统分配内存对齐方式问题 内存优化 总结 内存对齐 什么…

基于C++的AGV机器人无线控制

1 AGV系统概述 1.1AGV原理 AGV行走控制系统由控制面板、导向传感器、方向电位器、状态指示灯、避障传感器、光电控制信号传感器、驱动单元、导引磁条、电源组成。 AGV的导引&#xff08;Guidance&#xff09;是指根据AGV导向传感器&#xff08;Navigation&#xff09;所得到…

基于FFmpeg进行rtsp推流及拉流(详细教程)

目录 1.1 Windows系统 1.2 Ubuntu 和 Debian 系统 1.3 CentOS 和 Fedora 系统 1.4 macOS系统 2. 安装rtsp-simple-server 3. FFmpeg推流 3.1 UDP推流 3.2 TCP推流 3.3 循环推流 4 拉流 4.1 ffplay/VLC拉流显示 4.2 FFmpeg拉流保存成视频 1. 安装FFmpeg FFmpeg 是一…

tftp服务/nfs服务/二进制工具集/uboot基础

一、什么是系统移植 1&#xff09;系统移植就是给开发板搭建一个linux操作系统 2&#xff09;从官方获取源码&#xff0c;进行配置和编译&#xff0c;生成板子需要的镜像文件 二、为什么系统移植 1&#xff09;为后面学习驱动开发课程打基础 2&#xff09;驱动开发工程师必…

入行4年,跳槽2次,在软件测试这一行我已经悟了!

近年来&#xff0c;软件测试行业如火如荼。互联网及许多传统公司对于软件测试人员的需求缺口逐年增大。然而&#xff0c;20年的疫情导致大规模裁员&#xff0c;让人觉得行业寒冬已经到来。软件测试人员的职业规划值得我们深思。 大家对软件测试行业比较看好&#xff0c;只是因…

【云服务器 ECS 实战】专有网络 VPC、弹性网卡的概述与配置

一、ECS 专有网络 VPC1. 传统经典网络与专有网络 VPC 对比2. 建立自己的专有网络 VPC二、弹性网卡1. 弹性网卡的概念与优势2. 弹性网卡的配置一、ECS 专有网络 VPC 阿里云在早期使用的是一种传统的网络模式&#xff0c;将所有的 ECS 云服务直接建立在传统网络层之上&#xff0…

【有营养的算法笔记】归并排序

&#x1f451;作者主页&#xff1a;进击的安度因 &#x1f3e0;学习社区&#xff1a;进击的安度因&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;有营养的算法笔记 文章目录一、思路二、模板讲解三、模板测试四、加练 —— 逆序对的数量今天讲解的内容是…

[附源码]Python计算机毕业设计SSM加油站管理信息系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【论文笔记】InverseForm: A Loss Function for Structured Boundary-Aware Segmentation

论文 标题&#xff1a;InverseForm: A Loss Function for Structured Boundary-Aware Segmentation 收录于&#xff1a;CVPR 2021 论文&#xff1a;[2104.02745] InverseForm: A Loss Function for Structured Boundary-Aware Segmentation (arxiv.org) 代码&#xff1a;Git…

大数据都应用在哪些领域?

大数据被应用较多的领域有哪些&#xff1f;疫情期间大数据技术对于疫情的防控发挥了巨大的作用&#xff0c;抗疫期间多家互联网企业纷纷加强大数据在疫情防控中的应用。小到社区大到部委相关部门都将大数据作为不可或缺的防疫工具&#xff0c;生活中很多方面涉及到大数据由此可…

Scala014--Scala中的函数

一&#xff0c;函数的定义和声明 对于其他计算机语言来说&#xff0c;如Java&#xff0c;python&#xff0c;函数和方法是一样的&#xff0c;但是对于Scala来说&#xff0c;函数和方法并不是同一个概念&#xff0c;方法是类或者是对象的成员&#xff0c;而函数是一个对象。但是…

澳亚集团通过聆讯:毛利率波动,预计利润将下滑,陈荣南为董事长

撰稿|汤汤 来源|贝多财经 近日&#xff0c;港交所披露的信息显示&#xff0c;澳亚集团有限公司&#xff08;下称“澳亚集团”&#xff09;通过港交所聆讯&#xff0c;并披露了聆讯后资料集&#xff08;即招股书&#xff09;&#xff0c;中金公司和星展银行&#xff08;DBS&am…

如何从 Power BI 示例中获取数据以供练习

如果您是 Power BI 初学者, Microsoft Power BI 教程中提供的示例是入门的好地方。 在这篇文章中,我将按照步骤在 excel 中查看示例数据,以便您可以将这些数据用于练习目的。 下载 Excel 文件 首先,在浏览器中打开人力资源数据。文包含有关如何使用数据构建 Power BI 报…

不是我穷,是他真的很好用!

今天猫猫为您推荐一款良心vx小程序——喵盐配音&#xff01;利用小程序的特性&#xff0c;无需安装&#xff0c;即走即用。 这个配音软件超多功能&#xff0c;太强大了&#xff01;操作简单&#xff0c;输入文本&#xff0c;一键配音&#xff0c;小白也会用超多声音主播&#…

12月8日绿健简报,星期四,农历十一月十五

12月8日绿健简报&#xff0c;星期四&#xff0c;农历十一月十五1. 中国铁路&#xff1a;即日起购票乘车及进出站停止查验核酸和健康码&#xff1b;联防联控机制&#xff1a;不再对跨地区流动人员查验健康码&#xff0c;无症状和轻型病例一般采取居家隔离。2. 包头&#xff1a;交…

torchnet 简单使用文档

torchnet 是用于 torch 的代码复用和模块化编程的框架&#xff1a; 主要包含4个部分&#xff1a; Dataset&#xff1a;各种不同方式处理数据。Engine:各种机器学习算法Meter:性能度量指标。 Log&#xff1a;Log&#xff1a;Log&#xff1a; 模块详细分为如下部分&#xff1a;D…

FLStudio2023电脑版安装下载及fl21版本新功能介绍

FL Studio水果简称FL&#xff0c;全称&#xff1a;Fruity Loops Studio&#xff0c;国人习惯叫它"水果"。软件现有版本是 FL Studio 21&#xff0c;已全面升级支持简体中文语言界面 。FL Studio 能让你的计算机就像是全功能的录音室一样&#xff0c;完成编曲、剪辑、…