python处理变量交换与字符串及判断的小妙招

目录
  • 两变量交换
  • 重复字符串
  • 列表与字符串互相转换
  • 多情况判空
  • 多值一起判断
  • 尾语

两变量交换

语法:

a, b = b, a

IPython测试

In [1]: a = 3

In [2]: b = 5

In [3]: a, b = b, a

In [4]: a
Out[4]: 5

In [5]: b
Out[5]: 3

免去了利用一个临时变量进行过渡交互。

重复字符串

In [2]: 'love ' * 2
Out[2]: 'love love '

In [7]: for i in range(1, 10):
   ...:     print('*' * i)
   ...:

*
**
***
****
*****
******
*******
********
*********

列表与字符串互相转换

假如有一个列表内容为 ['n', 'i', 'c', 'e'],然后设法变成 字符串nice

字符串 0123456789 转成列表 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

语法:

''.join(['p', 'y', 't', 'h', 'o', 'n'])

IPython测试

In [6]: li = ['p', 'y', 't', 'h', 'o', 'n']

In [7]: ''.join(li)
Out[7]: 'python' 

# 字符串转列表
In [11]: s = '0123456789'

In [12]: s = list(s)

In [13]: s
Out[13]: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

相对 for 循环进行拼接是不是简洁有效,字符串可以直接转列表。相互转换看看各自的 api 能不能排上用场。

多情况判空

假如一个变量可能是 '', False, None, 0, [],但都认为这样是 空 该如何判空呢 ?

语法:

a = ''
if a:
    print('进不来')
else:
    print('空值')

IPython测试

In [20]: a = ''

In [21]: if a:
    ...:     print('进不来')
    ...: else:
    ...:     print('空值')
    ...:
空值

In [22]: a = False

In [23]: if a:
    ...:     print('进不来')
    ...: else:
    ...:     print('空值')
    ...:
空值

In [24]: a = None

In [25]: if a:
    ...:     print('进不来')
    ...: else:
    ...:     print('空值')
    ...:
空值

In [26]: a = 0

In [27]: if a:
    ...:     print('进不来')
    ...: else:
    ...:     print('空值')
    ...:
空值

In [28]: a = []

In [29]: if a:
    ...:     print('进不来')
    ...: else:
    ...:     print('空值')
    ...:
空值

多值一起判断

同时校验多个参数不是空值或含有空值

In [30]: a = 1

In [31]: b = ''

In [32]: c = True

In [33]: all([a, b, c])
Out[33]: False

In [34]: any([a, b, c])
Out[34]: True
  • all() 是列表中所有元素都不为空为 True,反之只要有一个是 空值 则 False
  • any() 是列表中有一个元素非空即为 True,所有元素为空才 False
  • 注意 空值 有 '', False, None, 0, [],然后就是需要装到一个统一的列表进行 all() , any() 判断

刚好可以验证上面的多情况判空。

In [54]: li
Out[54]: [True, True, True, True]

In [55]: all(li)
Out[55]: True

In [56]: any(li)
Out[56]: True

all() 验证

# all 只要有一个是空值就False
In [62]: all([False, True, True, True])
Out[62]: False

In [66]: all(['', True, True, True])
Out[66]: False

In [66]: all([None, True, True, True])
Out[66]: False

In [66]: all([True, [], True, True])
Out[66]: False   

In [66]: all([True, 0, True, True])
Out[66]: False       

# all 全部非空才 True
In [76]: li
Out[76]: ['python', 3.14, [1, 2], True]

In [77]: all(li)
Out[77]: True

any() 验证

# 所有元素为空则 False
In [82]: any([False, False, False, False])
Out[82]: False

In [83]: any([False, '', [], 0, None])
Out[83]: False

# any 只要有一个非空就为 True
In [86]: any([True, '', [], 0, None])
Out[86]: True

In [87]: any([False, '123', [], 0, None])
Out[87]: True

In [88]: any([False, '', [1, 2], 0, None])
Out[88]: True

In [89]: any([False, '', [], 1, None])
Out[89]: True

尾语

✍ 用 Code 谱写世界,让生活更有趣。❤️

✍ 万水千山总是情,点赞再走行不行。❤️

✍ 码字不易,还望各位大侠多多支持。❤️

到此这篇关于python处理变量交换与字符串及判断的小妙招的文章就介绍到这了,更多相关python 变量交换内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 关于python变量的引用以及在底层存储原理

    目录 1.变量的引用的底层原理 2.变量的分类 Python的变量,简单来说有数值型,布尔型,字符串类型,列表,元组,字典等6大类.那么不同变量类型在底层是如何存储的,关系到变量的引用,能否正确的掌握变量的相关操作 下面v1,v2的值分别是多少?为什么? v1 =3 v2=v1 print("v2:",v2) v1 += 2 print("v1:",v1) print("v2:",v2) #下面l2的值又是多少?为什么? l1 = [1,2,3]

  • 关于Python中字符串的各种操作

    目录 1.字符串拼接 2.字符串截取(字符串切片) 3.分割字符串 4.合并字符串 5.统计字符串出现的次数 6.检测字符串是否包含某子串 7.字符串对齐方法 8.检索字符串是否以指定字符串开头(startswith()) 9.检索字符串是否以指定字符串结尾(endswith()) 10.字符串大小写转换(3种)函数及用法 11.去除字符串中空格(删除特殊字符)的3种方法 12.encode()和decode()方法:字符串编码转换 13.序列化和反序列化 1.字符串拼接 通过+运算符 现有字符

  • Python基础入门之if判断语句

    目录 1.if 判断语句的基本语法 2.比较(即关系)运算符 3.逻辑运算符 4.if - else 5.if 语句进阶--elif 6.if的嵌套 总结 1.if 判断语句的基本语法 if 要判断的条件: 条件成立时,要做的事情 注意:代码的缩进为一个 tab 键,或者四个空格(pycharm 自动帮我们增加) 在 python 开发中,Tab 和空格不要混用 举例一: 需求: 1.定义一个整数变量 2.判断是否满 18 岁(>=) 3.如果满 18 岁,允许进入网吧 总结: 以上2个例子仅仅

  • Python中字符串的基础介绍及常用操作总结

    目录 1.字符串的介绍 2.字符串的下标 3.字符串切片 4.字符串find()操作 5.字符串index()操作 6.字符串count()操作 7.字符串replace()操作 8.字符串split()操作 9.字符串startswith()操作 10.字符串endswith()操作 11.字符串upper()操作 12.字符串lower()操作 13.字符串title()操作 14.字符串capitalize()操作 15.字符串strip()操作 16.字符串rfind()操作 17.字符

  • 利用Python判断你的密码难度等级

    前言 密码是个很私密的东西它一直关联着一系列的机密事物,二战中密码起了很大的作用.在我们生活中尤其是现在我们手机上存在着许多的app是我们生活不可或缺的,在登陆账号时我们是少不了输入密码这一环节,虽然有许多的app可用通过短信验证或者其他方式登录,但是密码可以是其他人来登录你账号的重要途径,密码越难账号越不会被盗.有一个难度系数高的密码是很重要的. 问题描述 我们知道密码我们现在是不可或缺且重要的一样事物.在设立密码时大多都会提醒密码的难度等级有的必须达到一定的等级才可以被使用.我们知道密码是可

  • 总结Python变量的相关知识

    一.变量的定义 程序中,数据都是临时存储在内存中,为了更快速的查找或使用这个数据,通常我们把这个数据在内存中存储之后,给整个数据定义一个名称,这个名称就是变量. 变量就是在存储数据的时候,当前数据所在的内存地址的一个名字而已. 二.Python变量说明 Python中使用变量,不需要声明,直接为变量赋值即可. 在Python中,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的数据. 这种变量本身类型不固定的语言称之为动态类型语言,与之对应的是静态类型语言.静态类型语言在

  • python处理变量交换与字符串及判断的小妙招

    目录 两变量交换 重复字符串 列表与字符串互相转换 多情况判空 多值一起判断 尾语 两变量交换 语法: a, b = b, a IPython测试 In [1]: a = 3 In [2]: b = 5 In [3]: a, b = b, a In [4]: a Out[4]: 5 In [5]: b Out[5]: 3 免去了利用一个临时变量进行过渡交互. 重复字符串 In [2]: 'love ' * 2 Out[2]: 'love love ' In [7]: for i in range

  • 五个Python命令使用的小妙招分享

    目录 1. 网络端口 2. Web服务 3. Json字符串 4. 系统信息 5. 文件解压缩 平常在使用python命令过程中,基本上都是用来安装python库时才使用到在控制台的python命令. 然而,python命令还有更多的妙用,可能一行命令就能实现一个小工具的实现,还是比较强悍的. 1. 网络端口 通常在测试网络端口的过程中都是使用telnet的指令来完成的,但是如果windows中没有开启telnet指令,恰好你又安装了python,那么也可以完成端口的测试. python -m 

  • Python中变量交换的例子

    Python追求简洁,诞生不少运算赋值规则,力求从简,其中就包括两个或者多个变量交换值. 普通语言中 复制代码 代码如下: # 声明变量 a=50 b=10 # 开始交换,先把其中一个值赋给临时变量,然后才能实现交换变量. tmp = a a = b b = tmp 在Python中,实现两个变量值交换非常方便 复制代码 代码如下: # 声明变量 a=50 b=10 # 开始交换变量 a,b = b,a 甚至可以多个变量同时交换 复制代码 代码如下: a=50 b=10 c=20 c,b,a =

  • 基于Python的文件类型和字符串详解

    1. Python的文件类型 1. 源代码--直接由Python解析 vi 1.py #!/usr/bin/python print 'hello world' 这里的1.py就是源代码 执行方式和shell脚本类似: chmod +x 后,./1.py Python 1.py 2. 字节代码 Python源码文件经编译后生成的扩展名为pyc的文件 编译方法: [root@t1 py]# cat 2.py #!/usr/bin/python import py_compile py_compil

  • python 查找文件名包含指定字符串的方法

    编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对路径. import os class SearchFile(object): def __init__(self,path='.'): self._path=path self.abspath=os.path.abspath(self._path) # 默认当前目录 def findfile(self,keyword,root): filelist=[] for root,dirs,files in

  • Python二进制串转换为通用字符串的方法

    一个小问题 今天在做一个实验时,需要对一个包含中英文词汇的TXT文件进行读入和整理. Python代码的编码规则为UTF-8.在读入时,文件的每行是二进制串,形如: b'heroes\xff..... 在对每行进一步进行处理时,要求处理对象必须为通用字符串,所以: lineVec = str(line).strip().split('\t') 此时的lineVec的元素类型为string,但输出是仍然是 "b'heros\xff-.." ,仍然无法摆脱二进制标志的影响.然而,尴尬的是,

  • python 把列表转化为字符串的方法

    如下所示: >>> list1=['ak','uk',4] >>> list2=[str(i) for i in list1] #使用列表推导式把列表中的单个元素全部转化为str类型 >>> list2 #查看转化后的列表 ['ak', 'uk', '4'] >>> list3=' '.join(list2) #把列表中的元素放在空串中,元素间用空格隔开 >>> list3 #查看生成的长串 'ak uk 4' 用p

  • python 检查是否为中文字符串的方法

    [目标需求] 查看某一个字符串是否为中文字符串 [解决办法] def check_contain_chinese(check_str): for ch in check_str: if u'\u4e00' <= ch <= u'\u9fff': return True else: return False [举例检验] check_contain_chinese('abcc') False check_contain_chinese('123') False check_contain_chi

  • Python日期时间对象转换为字符串的实例

    1.标准转换格式符号说明 %a 本地星期的短名称 如:Sun, Mon, ..., Sat (en_US); So, Mo, ..., Sa (de_DE) %A 本地星期全名称 如 :Sunday, Monday, ..., Saturday (en_US);Sonntag, Montag, ..., Samstag (de_DE) %w 星期的数字表示,0表示周日,6表示周六 如:0,1,2,,,6 %d 日的数字表示,并且使用0来填补(0-9),如:01, 02, ..., 31 %b 月

  • python 统计文件中的字符串数目示例

    题目: 一个txt文件中已知数据格式为: C4D C4D/maya C4D C4D/su C4D/max/AE 统计每个字段出现的次数,比如C4D.maya 先读取文件,将文件中的数据抽取出来: def getWords(filepath): file = open(filepath) wordOne=[] while(file): line = file.readline() word = line.split('/') wordOne.extend(word) if(not line): #

随机推荐