‘’ 空字符串是任何字符串的子串。如果您也喜欢 in 的简洁美妙, in 字符串时切记谨慎操作。
Python 官网:https://www.python.org/
Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
地址:https://lqpybook.readthedocs.io/
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
Python 官网:https://www.python.org/
Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
地址:https://lqpybook.readthedocs.io/
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
本文质量分:
CSDN质量分查询入口:http://www.csdn.net/qc
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 后面的语句!这,到底哪儿出问题了?应该可以才对啊!
在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’为真了!!
让我们看看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“规定”单双三引号包裹住的都是字符串类型,什么都不包就是特殊字符串——空字符串。
查阅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’:” 这条语句为真,是 ‘’ 空字符串让我的美好期盼流产。
>>>
>>> list('Yy')
['Y', 'y']
>>> tuple('Yy')
('Y', 'y')
>>>
if input(f"
{'':>8}调试代码?(Y/N) ").strip() in list('Yy'):
ids = ids[:3] # 用三篇博文测试本“工程”代码性能。
if input(f"
{'':>8}调试代码?(Y/N) ").strip() in tuple('Yy'):
ids = ids[:3] # 用三篇博文测试本“工程”代码性能。
我的HOT博:
本次共计收集 186 篇博文笔记信息,平均阅读量 1591 。已生成 17 篇阅读量不小于 3000 的博文笔记索引链接。
(数据采集于 2023-04-08 23:37:06 完成,用时 4 分 36.89 秒。)
精品文章:
来源:老齐教室
◆ Python 入门指南【Python 3.6.3】
好文力荐:
全栈领域优质创作者——寒佬(还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是学习的两大利器。
【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
靠谱程序员的好习惯
CSDN实用技巧博文: