x in ‘Yy‘ == x in list(‘Yy‘)? ‘‘ 空字符串是任何字符串的子串

‘’ 空字符串是任何字符串的子串。如果您也喜欢 in 的简洁美妙, in 字符串时切记谨慎操作。


【学习的细节是欢悦的历程】

  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……

    地址:https://lqpybook.readthedocs.io/


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室
等风来,不如追风去……

【学习的细节是欢悦的历程】

  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……

    地址:https://lqpybook.readthedocs.io/


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室
等风来,不如追风去……


如果您也喜欢 in 的简洁美妙
x in 'Yy' == x in list('Yy')?
( in 字符串时切记谨慎操作)


本文质量分:

90
本文地址: https://blog.csdn.net/m0_57158496/article/details/130036397

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组赛题)(129918628)
__下一篇:__ 

我的HOT博:

  本次共计收集 186 篇博文笔记信息,平均阅读量 1591 。已生成 17 篇阅读量不小于 3000 的博文笔记索引链接。
  (数据采集于 2023-04-08 23:37:06 完成,用时 4 分 36.89 秒。)


  1. 让QQ群昵称色变的神奇代码
    ( 52505 阅读)
    点赞:22  踩:0  打赏:0  评论:16
    本篇博文笔记于 2022-01-18 19:15:08 首发,最晚于 2022-01-20 07:56:47 修改。
  2. ChatGPT国内镜像站初体验:聊天、Python代码生成等
    ( 42502 阅读)
    点赞:121  踩:0  打赏:0  评论:73
    本篇博文笔记于 2023-02-14 23:46:33 首发,最晚于 2023-03-22 00:03:44 修改。
  3. pandas 数据类型之 DataFrame
    ( 7680 阅读)
    点赞:6  踩:0  打赏:0  评论:0
    本篇博文笔记于 2022-05-01 13:20:17 首发,最晚于 2022-05-08 08:46:13 修改。
  4. 罗马数字转换器|罗马数字生成器
    ( 6211 阅读)
    点赞:0  踩:0  打赏:0  评论:0
    本篇博文笔记于 2022-01-19 23:26:42 首发,最晚于 2022-01-21 18:37:46 修改。
  5. Python字符串居中显示
    ( 5808 阅读)
    点赞:1  踩:0  打赏:0  评论:1
    本篇博文笔记于 2021-12-26 23:35:29 发布。
  6. 斐波那契数列的递归实现和for实现
    ( 5230 阅读)
    点赞:4  踩:0  打赏:0  评论:8
    本篇博文笔记于 2022-01-06 23:27:40 发布。
  7. 练习:字符串统计(坑:f‘string‘报错)
    ( 4806 阅读)
    点赞:0  踩:0  打赏:0  评论:0
    本篇博文笔记于 2021-12-04 22:54:29 发布。
  8. 练习:尼姆游戏(聪明版/傻瓜式•人机对战)
    ( 4509 阅读)
    点赞:14  踩:0  打赏:0  评论:0
    本篇博文笔记于 2021-11-30 23:43:17 发布。
  9. 回车符、换行符和回车换行符
    ( 4205 阅读)
    点赞:0  踩:0  打赏:0  评论:0
    本篇博文笔记于 2022-02-24 13:10:02 首发,最晚于 2022-02-25 20:07:40 修改。
  10. python清屏
    ( 4027 阅读)
    点赞:0  踩:0  打赏:0  评论:0
    本篇博文笔记于 2021-10-14 13:47:21 发布。
  11. 个人信息提取(字符串)
    ( 3776 阅读)
    点赞:1  踩:0  打赏:0  评论:0
    本篇博文笔记于 2022-04-18 11:07:12 首发,最晚于 2022-04-20 13:17:54 修改。
  12. 密码强度检测器
    ( 3770 阅读)
    点赞:1  踩:0  打赏:0  评论:0
    本篇博文笔记于 2021-12-06 09:08:25 首发,最晚于 2022-11-27 09:39:39 修改。
  13. 罗马数字转换器(用罗马数字构造元素的值取模实现)
    ( 3731 阅读)
    点赞:0  踩:0  打赏:0  评论:0
    本篇博文笔记于 2022-01-20 19:38:12 首发,最晚于 2022-01-21 18:32:02 修改。
  14. 练习:班里有人和我同生日难吗?(概率probability、蒙特卡洛随机模拟法)
    ( 3460 阅读)
    点赞:1  踩:0  打赏:0  评论:0
    本篇博文笔记于 2022-04-26 12:46:25 首发,最晚于 2022-04-27 21:22:07 修改。
  15. 练习:生成100个随机正整数
    ( 3290 阅读)
    点赞:1  踩:0  打赏:0  评论:0
    本篇博文笔记于 2022-01-18 13:31:36 首发,最晚于 2022-01-20 07:58:12 修改。
  16. 我的 Python.color() (Python 色彩打印控制)
    ( 3191 阅读)
    点赞:2  踩:0  打赏:0  评论:0
    本篇博文笔记于 2022-02-28 22:46:21 首发,最晚于 2022-03-03 10:30:03 修改。
  17. 练习:仿真模拟福彩双色球——中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规范(说明文档的规范写法)

    你可能感兴趣的:(练习,python)