‘’ 空字符串是任何字符串的子串。如果您也喜欢 in 的简洁美妙, in 字符串时切记谨慎操作。
-
Python 官网:https://www.python.org/
-
Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
地址:https://lqpybook.readthedocs.io/
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
- My CSDN主页、My HOT博、My Python 学习个人备忘录
- 好文力荐、 老齐教室
本文质量分:
CSDN质量分查询入口:http://www.csdn.net/qc
- ◆x in 'Yy' == x in list('Yy')?
- 1、in 'Yy'
- 2、让“罪恶”显形
- 3、“正本清源”
- 4、'' in 'Yy' == True
- 5、结语
◆x in ‘Yy’ == x in list(‘Yy’)?
1、in ‘Yy’
if input(f"调试代码?(Y/N) ").strip() in 'Yy':ids = ids[:3] # 用三篇博文测试本“工程”代码性能。
我想要上面的两行代码实现,仅当输入 ‘ly’ or ‘Y’ 时,才执行 if 后的语句。
flag = input(f"调试代码?(Y/N) ").strip()if flag == 'y' or flag == 'Y':ids = ids[:3] # 用三篇博文测试本“工程”代码性能。
与这样子的“先行输入再直接判定”写法“同质”。但事与愿违,当没有输入直接回车时,也执行了 if 后面的语句!这,到底哪儿出问题了?应该可以才对啊!
2、让“罪恶”显形
在Python命令行模式下炼炼码:
~ $ python
Python 3.11.1 (main, Dec 7 2022, 05:56:18) [Clang 14.0.6 (https://android.googlesource.com/toolchain/llvm-project 4c603efb0 on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>
>>> myinput = lambda x: input('
输入:') in x
>>> myinput(' ')输入:
True
>>> myinput('yY')输入:
True
>>> myinput(list(' '))输入:
False
>>> myinput(list('yY'))输入:Y
True
>>> myinput(list('yY'))输入:
False
>>> myinput(list('yY'))输入:HK
False
>>>
不输入直接回车,居然让定义的输入判定函数返回了True!🤔也就是说,不输入的情况下,in 'Yy’为真了!!😓
3、“正本清源”
让我们看看Python的input()在直接回车时,到底得到了啥?
还是祭出“命令行模式”大杀器:
~ $ python
Python 3.11.1 (main, Dec 7 2022, 05:56:18) [Clang 14.0.6 (https://android.googlesource.com/toolchain/llvm-project 4c603efb0 on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> s = input()
>>> s
''
>>> type(s)
<class 'str'>
>>>
>>> print(s)>>>
原来,Python的input()在不输入任何字符直接回车的情况下,是返回的“空字符”—— ‘’ (或者 “” ),甚至是三引号 。Python“规定”单双三引号包裹住的都是字符串类型,什么都不包就是特殊字符串——空字符串。
4、’’ in ‘Yy’ == True
查阅Python教程,明白了空字符串 ‘’ ,是任何字符串的子串。
>>>
>>> '' in 'Yy'
True
>>> '' in 'adc'
True
>>> '' in ''
True
>>> '' in '梦幻精灵_cq'
True
>>>
“实践是检验真理的唯一标准”!
这不,在Python命令行模式下一“践”,这“ ‘’ 空字符串是任何字符串的子串”的真理,就直白在了我们的眼前。
>>>
>>> '' in 'Yy'
True
>>> 'Y' in 'Yy'
True
>>> 'y' in 'Yy'
True
>>>
所以,有三种情况让 “if input('输入:) in ‘Yy’:” 这条语句为真,是 ‘’ 空字符串让我的美好期盼流产。
5、结语
如果您也和我一样, 喜欢 in 的简洁美妙,当用 input() in 字符串时,一定要谨慎,心中明白自己到底在干啥。😀 也 可以用 list 和 tuple 关键字来“修饰”我们要 in 的字符串,让 '' 空字符串无机可乘!
>>>
>>> list('Yy')
['Y', 'y']
>>> tuple('Yy')
('Y', 'y')
>>>
- list,将字符串转成列表
if input(f"
{'':>8}调试代码?(Y/N) ").strip() in list('Yy'):ids = ids[:3] # 用三篇博文测试本“工程”代码性能。
- tuple,将要 in 的字符转成元组
if input(f"
{'':>8}调试代码?(Y/N) ").strip() in tuple('Yy'):ids = ids[:3] # 用三篇博文测试本“工程”代码性能。
通过这样子的修饰,就完美地解决了我遇到的困惑——仅当输入“Y”或者“y”时,if后的语句才能得到执行。
__上一篇:__ Python代码解蓝桥杯省赛(C/C++2022大学B组赛题)(单纯、混合进制整数通吃,真正的黄金万能算法)
__下一篇:__ X 进制转十进制黄金万能算法(练习•复刻C/C++算法)
我的HOT博:
本次共计收集 186 篇博文笔记信息,平均阅读量 1591 。已生成 17 篇阅读量不小于 3000 的博文笔记索引链接。
(数据采集于 2023-04-08 23:37:06 完成,用时 4 分 36.89 秒。)
- 让QQ群昵称色变的神奇代码
( 52505 阅读)
点赞:22 踩:0 打赏:0 评论:16
本篇博文笔记于 2022-01-18 19:15:08 首发,最晚于 2022-01-20 07:56:47 修改。 - ChatGPT国内镜像站初体验:聊天、Python代码生成等
( 42502 阅读)
点赞:121 踩:0 打赏:0 评论:73
本篇博文笔记于 2023-02-14 23:46:33 首发,最晚于 2023-03-22 00:03:44 修改。 - pandas 数据类型之 DataFrame
( 7680 阅读)
点赞:6 踩:0 打赏:0 评论:0
本篇博文笔记于 2022-05-01 13:20:17 首发,最晚于 2022-05-08 08:46:13 修改。 - 罗马数字转换器|罗马数字生成器
( 6211 阅读)
点赞:0 踩:0 打赏:0 评论:0
本篇博文笔记于 2022-01-19 23:26:42 首发,最晚于 2022-01-21 18:37:46 修改。 - Python字符串居中显示
( 5808 阅读)
点赞:1 踩:0 打赏:0 评论:1
本篇博文笔记于 2021-12-26 23:35:29 发布。 - 斐波那契数列的递归实现和for实现
( 5230 阅读)
点赞:4 踩:0 打赏:0 评论:8
本篇博文笔记于 2022-01-06 23:27:40 发布。 - 练习:字符串统计(坑:f‘string‘报错)
( 4806 阅读)
点赞:0 踩:0 打赏:0 评论:0
本篇博文笔记于 2021-12-04 22:54:29 发布。 - 练习:尼姆游戏(聪明版/傻瓜式•人机对战)
( 4509 阅读)
点赞:14 踩:0 打赏:0 评论:0
本篇博文笔记于 2021-11-30 23:43:17 发布。 - 回车符、换行符和回车换行符
( 4205 阅读)
点赞:0 踩:0 打赏:0 评论:0
本篇博文笔记于 2022-02-24 13:10:02 首发,最晚于 2022-02-25 20:07:40 修改。 - python清屏
( 4027 阅读)
点赞:0 踩:0 打赏:0 评论:0
本篇博文笔记于 2021-10-14 13:47:21 发布。 - 个人信息提取(字符串)
( 3776 阅读)
点赞:1 踩:0 打赏:0 评论:0
本篇博文笔记于 2022-04-18 11:07:12 首发,最晚于 2022-04-20 13:17:54 修改。 - 密码强度检测器
( 3770 阅读)
点赞:1 踩:0 打赏:0 评论:0
本篇博文笔记于 2021-12-06 09:08:25 首发,最晚于 2022-11-27 09:39:39 修改。 - 罗马数字转换器(用罗马数字构造元素的值取模实现)
( 3731 阅读)
点赞:0 踩:0 打赏:0 评论:0
本篇博文笔记于 2022-01-20 19:38:12 首发,最晚于 2022-01-21 18:32:02 修改。 - 练习:班里有人和我同生日难吗?(概率probability、蒙特卡洛随机模拟法)
( 3460 阅读)
点赞:1 踩:0 打赏:0 评论:0
本篇博文笔记于 2022-04-26 12:46:25 首发,最晚于 2022-04-27 21:22:07 修改。 - 练习:生成100个随机正整数
( 3290 阅读)
点赞:1 踩:0 打赏:0 评论:0
本篇博文笔记于 2022-01-18 13:31:36 首发,最晚于 2022-01-20 07:58:12 修改。 - 我的 Python.color() (Python 色彩打印控制)
( 3191 阅读)
点赞:2 踩:0 打赏:0 评论:0
本篇博文笔记于 2022-02-28 22:46:21 首发,最晚于 2022-03-03 10:30:03 修改。 - 练习:仿真模拟福彩双色球——中500w巨奖到底有多难?跑跑代码就晓得了。
( 3083 阅读)
点赞:3 踩:0 打赏:0 评论:3
本篇博文笔记于 2022-06-22 19:54:20 首发,最晚于 2022-06-23 22:41:33 修改。
精品文章:
- 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
- OPP三大特性:封装中的property
- 通过内置对象理解python'
- 正则表达式
- python中“*”的作用
- Python 完全自学手册
- 海象运算符
- Python中的 `!=`与`is not`不同
- 学习编程的正确方法
来源:老齐教室
◆ Python 入门指南【Python 3.6.3】
好文力荐:
-
全栈领域优质创作者——寒佬(还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是学习的两大利器。
-
【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
-
靠谱程序员的好习惯
CSDN实用技巧博文:
- 8个好用到爆的Python实用技巧
- python忽略警告
- Python代码编写规范
- Python的docstring规范(说明文档的规范写法)