Python中4种实现数值的交换方式
目录
- 1.使用临时变量
- 2.使用tuple元组
- 3.使用 加减法 或 乘除法
- 4.使用异或运算
1.使用临时变量
该方法是最简单的,也是最容易理解的,适用于所有编程语言,其实现过程如下:
tmp = a a = b b = tmp
2.使用tuple元组
该方法是Python下特有的方法,并且只需要一行代码即可实现,其使用到了元组(tuple),其大致原理如下:
右边的 b, a 会构成一个由 b 和 a 组成的元组对元组进行拆包,然后再分别赋值给到左边的 a, b
a, b = b, a
我们也可以借助列表,右边放一个由 b 和 a 组成的列表来实现,但注意右边不能放一个集合中,因为集合是无序的,会导致最终交换结果不对。
a, b, c, d = 100, 200, 3000, 400 # 右边为元组 # a, b, c, d = d, c, b, a # print(a, b, c, d) # 400 3000 200 100 # 右边为列表 # a, b, c, d = [d, c, b, a] # print(a, b, c, d) # 400 3000 200 100 # 右边为集合,会导致最终交换数值不对 a, b, c, d = {d, c, b, a} print(a, b, c, d) # 400 100 3000 200
3.使用 加减法 或 乘除法
无论使用 加减法 或 乘除法,都不需要使用到临时变量,其实现过程如下:
# 加减法 a = a + b b = a - b # b = (a + b) - b = a a = a - b # a = (a + b) - b = (a + b) - a = b # 乘除法 a = a * b b = a // b # b = (a * b) // b = a a = a // b # a = (a * b) // b = (a * b) // a = b
4.使用异或运算
异或运算的特点:0异或任一个数a,其结果为 a;任一数a异或自己,也就是 a异或a,其结果为 0。同时异或运算满足交换律。
使用异或运算,也不需要使用到临时变量,其实现过程如下:
a = a ^ b b = a ^ b # b = (a ^ b) ^ b = a ^ (b ^ b) = a ^ 0 = a a = a ^ b # a = (a ^ b) ^ b = (a ^ b) ^ a = (a ^ a) ^ b = 0 ^ b = b
到此这篇关于Python中4种实现数值的交换方式的文章就介绍到这了,更多相关Python数值交换内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Python中的四种交换数值的方法解析
这篇文章主要介绍了Python中的四种交换数值的方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 交换两个变量的值方法,这个面试题如果只写一种当然很简单,没什么可以说的. 今天这个面试是问大家有几种办法来实现交换两个变量的值. 在没开始看具体答案前,你可以先想想看 下面分别来说说这几种方法 方法一 通过新添加中间变量temp的方式,这个方法是最简单的,每个语言都适用. 方法二 Python独有的方法,一行代码就能搞定,直接将两个变量放到元
-
Python实现变量数值交换及判断数组是否含有某个元素的方法
本文实例讲述了Python实现变量数值交换及判断数组是否含有某个元素的方法.分享给大家供大家参考,具体如下: 本来,这两个问题都属于的编程入门简单得不能再简单的问题,根本就不值得写篇记录来记录的. 一.变量数值交换 先说变量数值交换,从C语言开始,我们就知道要先设置一个临时变量,再把某元素的值覆盖此临时变量,避免临时覆盖等,如果不设置临时变量,还有位运算的交换形式 然而Python中根本就不用这么复杂,如果要交换变量e1,e2彼此的值,就下面一行代码就足矣: e1,e2=e2,e1; 比如,如下
-
Python中的正则表达式与JSON数据交换格式
一.初识正则表达式 正则表达式 是一个特殊的字符序列,一个字符串是否与我们所设定的这样的字符序列,相匹配快速检索文本.实现替换文本的操作 json(xml) 轻量级 web 数据交换格式 import re a='C|C++|Java|C#||Python|Javascript' r= re.findall('Python',a) print(r) if len(r) > 0: print('字符串中包含Python') else: print('No') ['Python'] 字符串中包含Py
-
对Python中实现两个数的值交换的集中方法详解
如下所示: #定义两个数并赋值 x = 1 y = 2 #第1种方式:引入第三方变量 z = 0 z = x x = y y = z #第2种:不引入第三方变量 x = x+y y = x-y x = x-y #第3种:推荐 x,y = y,x print("x=%d,y=%d"%(x,y)) 以上这篇对Python中实现两个数的值交换的集中方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
Python中几种导入模块的方式总结
模块内部封装了很多实用的功能,有时在模块外部调用就需要将其导入.常见的方式有如下几种: 1 . import >>> import sys >>> sys.path ['', 'C:\\Python34\\Lib\\idlelib', 'C:\\Windows\\system32\\python34.zip', 'C:\\Python34\\DLLs', 'C:\\Python34\\lib', 'C:\\Python34', 'C:\\Python34\\lib\\s
-
Python 中几种字符串格式化方法及其比较
Python 中几种字符串格式化方法及其比较 起步 在 Python 中,提供了很多种字符串格式化的方式,分别是 %-formatting.str.format 和 f-string .本文将比较这几种格式化方法. %- 格式化 这种格式化方式来自于 C 语言风格的 sprintf 形式: name = "weapon" "Hello, %s." % name C 语言的给实话风格深入人心,通过 % 进行占位. 为什么 %-formatting不好 不好的地方在于,
-
对Python中9种生成新对象的方法总结
先定义一个类: class Point: def __init__(self, x, y): self.x = x self.y = y 下面我们使用9种方法来生成新的对象: point1 = Point(1, 2) point2 = eval("{}({}, {})".format("Point", 1, 2)) point3 = globals()["Point"](1, 2) point4 = locals()["Point&qu
-
对python中两种列表元素去重函数性能的比较方法
测试函数: 第一种:list的set函数 第二种:{}.fromkeys().keys() 测试代码: #!/usr/bin/python #-*- coding:utf-8 -*- import time import random l1 = [] leng = 10L for i in range(0,leng): temp = random.randint(1,10) l1.append(temp) print '测试列表长度为:',leng #first set last = time.
-
协程Python 中实现多任务耗资源最小的方式
协程,又称微线程,纤程.英文名 Coroutine. 协程是 Python 中另外一种实现多任务的方式,只不过比线程更小,占用更小执行单元(理解为需要的资源). 为啥说它是一个执行单元,因为它自带 CPU 上下文.这样只要在合适的时机, 我们可以把一个协程 切换到另一个协程. 只要这个过程中保存或恢复 CPU上下文那么程序还是可以运行的. 通俗的理解:在一个线程中的某个函数,可以在任何地方保存当前函数的一些临时变量等信息,然后切换到另外一个函数中执行,注意不是通过调用函数的方式做到的,并且切换的
-
python中使用input()函数获取用户输入值方式
我们编写程序最终目的还是来解决实际问题,所以必然会遇到输入输出的交互问题,python中提供了input函数用来获取用户的输入,我们可以用以下程序演示. user_gender = input("Please enter your gender(F/M):") print(f'Your gender is {user_gender}') 要注意的是在sublime编辑器中不支持input的在线输入,所以我们需要去cmd窗口运行这个程序,结果如下所示: 要注意的是input的返回值是字符
-
Python中3种内建数据结构:列表、元组和字典
Python中有3种内建的数据结构:列表.元组和字典.参考简明Python教程 1. 列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目.假想你有一个购物列表,上面记载着你要买的东西,你就容易理解列表了.只不过在你的购物表上,可能每样东西都独自占有一行,而在Python中,你在每个项目之间用逗号分割. 列表中的项目应该包括在方括号中,这样Python就知道你是在指明一个列表.一旦你创建了一个列表,你可以添加.删除或是搜索列表中的项目.由于你可以增加或删除项目,
-
Python中几种操作字符串的方法的介绍
#! -*- coding:utf-8 -*- import string s = 'Yes! This is a string' print '原字符串:' + s print '小写:' + s.lower() print '大写:' + s.upper() print '大小写转换:' + s.swapcase() print '首字母大写:' + s.capitalize() print '每个单词首字母大写:' + s.title() #各种对齐函数 print '左对齐:' + s.
随机推荐
- Java中String判断值为null或空及地址是否相等的问题
- KnockoutJS 3.X API 第四章之事件event绑定
- asp中Scripting.Dictionary字典对象使用示例
- oracle 11g RAC 常用命令整理分享
- Angularjs 滚动加载更多数据
- 在Struts2中如何将父类属性序列化为JSON格式的解决方法
- 用vbscript实现隐藏任务栏图标的脚本
- python基础教程之面向对象的一些概念
- js实现的GridView即表头固定表体有滚动条且可滚动
- asp.net Ajax之无刷新评论介绍
- PHP字符串比较函数strcmp()和strcasecmp()使用总结
- YII Framework学习之request与response用法(基于CHttpRequest响应)
- php中判断字符串是否全是中文或含有中文的实现代码
- 从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
- 看UNIX高手的10个习惯第1/2页
- Python使用scrapy采集数据过程中放回下载过大页面的方法
- Java的内存机制详解
- 一些.NET对多线程异常处理技巧分享
- C#实现winform自动关闭MessageBox对话框的方法
- Cisco设备做流量监控得方法
其他
- pythonopencv 目标监测
- phpmysql学生管理源代码
- vue结合echart使用让一个图表的数据高亮
- openlayer vue 修改地图样式
- dataframe apply赋值失败
- dataframe loc 条件筛选
- python webservice测试
- winscp 怎么安装宝塔面板
- oracle 时间 索引失效
- 餐厅点餐系统c语言源代码
- sql 中 on 条件有过滤功能吗
- python一维列表变二维列表 reshape
- 立体圣诞树代码java
- django migrate 表已存在
- tensorflow模型压缩方法
- HttpRequest获取Ip
- css 好看的table
- vue实现threejs编辑器
- c语言怎么读取bmp文件到内存
- mybatis-plus 查询 字段不为空