python多重赋值技巧_python教程12课:多元赋值、多重赋值、运算符以及判断字符串类型...

9035199d5981ae605b282e5efc1e4787.png

# 多元赋值:

# x,y,z 和 1,2,‘String'是两个元组,只不过元组的 () 被省略掉了

x, y ,z = 1, 2, 'String'

print(x, y, z)

(x, y ,z) = (3, 4, 'String')

print(x,y,z)

# 一般用在交换变量值

#交换变量值常规思路

x =10,

y =20

z =30

x ,y, z = y,z,x

print(x,y,z)

#使用多元赋值直接交换

x,y = y,x

print(x,y)

# 不能使用一个数值型

# x,y,z = 10

# 多元赋值的时候,元素个数要对应,不能多也不能

x,y,z = 'aaa','bbb','ccc'

print(x, y ,z)

################## 如果后面值是字符串,会自动转换成元组,字符串的长度需要和前面变量的个数一样

x,y,z = 'Str'

print(x,y,z)

# 等效于上面直接使用字符串

str = 'str'

tup = tuple(str)

print(tup)

x,y,z = tup

print(x,y,z)

##########################################使用字典

x,y,z = {'a':'aa','b':'bb','c':'cc'}

print('使用字典直接赋值',x,y,z)

# 等效于上面直接使用字典赋值

dict = {'a':'aa','b':'bb','c':'cc'}

tup = tuple(dict)

print('将字典转换之后的元组:',tup)

x,y,z = tup

print('使用字典转换后赋值:',x,y,z)

########################################使用 集合list

x,y,z = [1,2,3]

print('使用集合直接赋值:',x,y,z)

list = [1,2,3]

tup = tuple(list)

print('list转换后的元组:',tup)

x,y,z = tup

print('使用list转换之后赋值:',x,y,z)

# 多重赋值

#类似深度复制,a, b, c 是同一个对象,内存地址一样

a = b = c = 10

print(id(a),id(b),id(c))

print(a is b, b is c, a is c)

# 运算符

# + - * / % ** //

x = 5

y = 3

a = 4

b = 2

c = 2.4

print(x + y)

print(x - y)

print(x * y)

# 如果是除法,返回带小数点的浮点数

print(x / y)

# 取余数,比如 20 % 3 余数就是2,如果对 1取余结果为0,表示是整数

print(x % y)

print(c%1)

# 次方,表示x 的 y次数

print(x ** y)

# x / y 以后结果向下取整,也就是如果有小数,直接去掉小数点后面

print(x // y)

# 所有 a = a + b 等效于 a += b

# 上面的 + 可以换成 -、*、\、%、**、

a = 4

b = 2

a = a + b

print('======',a)

a = 4

a += b

print('======',a)

# 下面两种次方 等效

a = a**b

a**=b

print(a)

# 字符串的判断

str1 = '123'

str2 = 'Abc'

str3 = '123Abc'

#字符串判断是否全部是数字 isdigit,如果全部为数字返回True,否则返回False

print(str1.isdigit())

print(str2.isdigit())

print(str3.isdigit())

# 字符串判断是否全部是字符串,issalpha(),如果全是是字符串返回True,否则返回False

print(str1.isalpha())

print(str2.isalpha())

print(str3.isalpha())

# 如果判断是字符串和数字的组合,两者并集取反

print(not str1.isdigit() and not str1.isalpha())

print(not str2.isdigit() and not str2.isalpha())

print(not str3.isdigit() and not str3.isalpha())

#判断集合元素类型练习

列表 li=[1,’2’,’ab’,3,’as21’,4,’5b’,’6’,’568’,’10q’]将所有数字类型的元素,保存在字典第一 个 key中,将所有全部由数字组成的字符串类型的元素保存在字典的第二个 key中,剩 下的所有保存在字典的第三个 key中。 如 dic={key1:数字类型的值;key2:全部由数字组成的字符串元素;key3:剩下的其他元素}

li=[1,'2','ab',3,'as21',4,'5b','6','568','10q']

list1 =[] # 全是数字集合

list2 =[] # 字符串集合

list3 =[] #字符串和数字混合

for x in li:

try:

x.isdigit()

except AttributeError:

list1.append(x)

li.remove(x)

li2 = li.copy()

print('=====',li2)

for x in range(len(li)):

try:

if li[x].isdigit():

list2.append(li2[x])

else:

list3.append(li2[x])

except AttributeError:

pass

print(list1, list2, list3)

dic={'key1':list1 ,'key2':list2,'key3':list3}

print(dic)

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

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

相关文章

【转】关于CLR内存管理一些深层次的讨论[下篇]

《上篇》中我们主要讨论的是程序集(Assembly)和应用程序域(AppDomain)的话题,着重介绍了两个不同的程序集加载方式——独占方式和共享方式(中立域方式);以及基于进程范围内的字符串驻…

【转】深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈

理解堆与栈 导航 深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈 深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节 栈基本工作原理 深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第三节 栈与堆,值类型与引用类型 深入浅出图…

bi 存储过程方案_BI 系统中容易被忽视的数据源功能

BI 系统中容易被忽视的数据源功能用户在选购 BI 解决方案的时候,常常会更关注界面环节的功能指标,比如美观性、操作的流畅性、移动端支持等等。毕竟,BI 是要给业务人员使用的,这些看得见的内容一般不容易被遗漏。然而,…

【转】深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节 栈基本工作原理

栈基本工作原理 导航 深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈 深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节 栈基本工作原理 深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第三节 栈与堆,值类型与引用类型 深入浅…

【转】深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第三节 栈与堆,值类型与引用类型

前言 虽然在.Net Framework 中我们不必考虑内在管理和垃圾回收(GC),但是为了优化应用程序性能我们始终需要了解内存管理和垃圾回收(GC)。另外,了解内存管理可以帮助我们理解在每一个程序中定义的每一个变量是怎样工作的。 简介 本文将介绍值类型与引用类…

【转】.net框架读书笔记---CLR内存管理\垃圾收集(一)

一、垃圾收集平台基本原理解析 在C#中程序访问一个资源需要以下步骤: 调用中间语言(IL)中的newobj指令,为表示某个特定资源的类型实例分配一定的内存空间。初始化上一步所得的内存,设置资源的初始状态,从而…

【转】.net框架读书笔记---CLR内存管理\垃圾收集(七)

编程控制垃圾收集器 System.GC类型为应用程序提供了直接控制垃圾收集器的一些方法,可以通过GC.MaxGeneration来查询托管堆支持的最大代龄,目前为2。 通过下面方法执行垃圾收集器 GC.Collect(int);传递代龄,传递0,收集0代&#xff…

【转】深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第四节 参数传递对堆栈的影响 1

前言 虽然在.Net Framework 中我们不必考虑内在管理和垃圾回收(GC),但是为了优化应用程序性能我们始终需要了解内存管理和垃圾回收(GC)。另外,了解内存管理可以帮助我们理解在每一个程序中定义的每一个变量是怎样工作的。 简介 这篇文章我们将介绍一些方…

【转】深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第四节 参数传递对堆栈的影响 2

前言 虽然在.Net Framework 中我们不必考虑内在管理和垃圾回收(GC),但是为了优化应用程序性能我们始终需要了解内存管理和垃圾回收(GC)。另外,了解内存管理可以帮助我们理解在每一个程序中定义的每一个变量是怎样工作的。 简介 继续上篇未完成的“参数传…

【转】深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第五节 引用类型复制问题及用克隆接口ICloneable修复

前言 虽然在.Net Framework 中我们不必考虑内在管理和垃圾回收(GC),但是为了优化应用程序性能我们始终需要了解内存管理和垃圾回收(GC)。另外,了解内存管理可以帮助我们理解在每一个程序中定义的每一个变量是怎样工作的。 简介 这一节我们将介绍引用类型…

linux virt java_Linux下Java环境安装

本节主要讲解Linux(Centos 6.5)下Java环境的安装1. 卸载机器上默认安装的JDK在Linux环境下一般会默认安装jdk,为了自己项目的开发部署,一般情况要重新装jdk,而且自己装的Jdk相对来说易控制版本,稳定性更高。所以以下是我卸载预装J…

【转】深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第六节 理解垃圾回收GC,提搞程序性能****

前言 虽然在.Net Framework 中我们不必考虑内在管理和垃圾回收(GC),但是为了优化应用程序性能我们始终需要了解内存管理和垃圾回收(GC)。另外,了解内存管理可以帮助我们理解在每一个程序中定义的每一个变量是怎样工作的。 简介 这一节我们将介绍垃圾回…

【转】分布式事务的常见解决方案

一、事务起步 1. 什么是事务 事务这种东西大家都耳熟能详了,通常指由一组操作组成的一个工作单元,这一整个组合要么全部成功,要么全部失败。 2. 本地事务 在计算机系统中,更多的是通过关系型数据库来控制事务,这是…

java s.charat_Java中s.charAt(index)用于提取字符串s中的特定字符操作

charAt(int index)方法是一个能够用来检索特定索引下的字符的String实例的方法.charAt()方法返回指定索引位置的char值。索引范围为0~length()-1.如: str.charAt(0)检索str中的第一个字符,str.charAt(str.length()-1)检索最后一个字符.警告:在字符串s中越界访问字符…

【转】.NET框架简介

.NET 框架是由微软开发的软件开发平台,其最主要的两个组成部分是公共语言运行时 (CLR) 和框架类库 (FCL),基础类库 (BCL)是框架类库的一个子集。 .NET 框架简介 下图展示了 .NET 框架的主要结构。 其中,最下层的无疑就是操作系统了。 在 …

java比赛题目_【蓝桥杯2016第七届比赛题目】JAVA A组

1 煤球数目有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填表…

【转】C#技术漫谈之垃圾回收机制(GC)

摘要:今天我们漫谈C#中的垃圾回收机制,本文将从垃圾回收机制的原理讲起,希望对大家有所帮助。 GC的前世与今生 虽然本文是以.NET作为目标来讲述GC,但是GC的概念并非才诞生不久。早在1958年,由鼎鼎大名的图林奖得主John…

【转】git hub 使用小结

【转自:https://blog.csdn.net/yj310873325/article/details/79255134】 1.创建账号: https://github.com/ 2.下载客户端:https://git-scm.com/download 这是命令行模式,用着比较舒服,不是github的客户端,一路默认安…

【转】细说.NET 中的多线程 (一 概念)

为什么使用多线程 1.使用户界面能够及时响应用户的输入 当某个应用程序在进行大量运算时候,为了保证应用程序能够随时响应客户的输入,这个时候我们往往需要让大量运算和响应用户输入这两个行为在不同的线程中进行。 2.效率原因 应用程序经常需要等待一…

【转】细说.NET中的多线程 (二 线程池)

上一章我们了解到,由于线程的创建,销毁都是需要耗费大量资源和时间的,开发者应该非常节约的使用线程资源。最好的办法是使用线程池,线程池能够避免当前进程中大量的线程导致操作系统不停的进行线程切换,当线程数量到达…