鱼C论坛

 找回密码
 立即注册
查看: 1278|回复: 5

[已解决]这个要怎么写才能如老甲鱼老师说的颜值更高些?红色的部分我看不太懂,求大神指点迷津

[复制链接]
发表于 2020-6-26 23:52:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
钓鱼记录

fish_record = "鲫鱼5条、鲤鱼8条、鲢鱼7条、草鱼2条、黑鱼6条、乌龟6只"

if fish_record[0 : 2] == "乌龟":
    print("是乌龟吗?,是" + fish_record[0:2])
elif fish_record[5 : 7] == "乌龟":
    print("是乌龟吗?,是" + fish_record[5:7])
elif fish_record[10 : 12] == "乌龟":
    print("是乌龟吗?,是" + fish_record[10:12])
elif fish_record[15 : 17] == "乌龟":
    print("是乌龟吗?,是" + fish_record[15:17])
elif fish_record[20 : 22] == "乌龟":
    print("是乌龟吗?,是" + fish_recoed[20:22])
elif not fish_record[25 : 27] != "乌龟":
    if int(fish_record[27]) %2 == 0:
        print("找到乌龟了, 是%d只,偶数" % (int(fish_record[27])))
    else:
        print("找到乌龟了, 是%d只,奇数" % (int(fish_record[27])))
最佳答案
2020-6-27 00:49:24
“颜值更高”什么意思,我没听过课不知道什么意思
要求是什么也不清楚
只能解释红色代码的意思了

if 的条件是 表达式 not fish_record[25 : 27] != "乌龟"

这里首先要知道在python中比较类的运算符(<  >  ==  !=)是优先于逻辑运算符(and or not)的
所以说这个表达式等同于 not (fish_record[25 : 27] != "乌龟")
fish_record[25 : 27] != "乌龟"  这个表达式意思是列表中25-27内容不是“乌龟”,实际情况内容正是“乌龟”,得到的结果是 False
前面加上not ,整个表达式 not fish_record[25 : 27] != "乌龟" 输出结果就是 True

所以if判断条件成立,继续判断 int(fish_record[27]) %2 == 0 即 列表中27位是奇数还是偶数,对应输出结果


not fish_record[25 : 27] != "乌龟"这个表达式可以简化成  fish_record[25 : 27] == "乌龟"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-27 00:49:24 | 显示全部楼层    本楼为最佳答案   
“颜值更高”什么意思,我没听过课不知道什么意思
要求是什么也不清楚
只能解释红色代码的意思了

if 的条件是 表达式 not fish_record[25 : 27] != "乌龟"

这里首先要知道在python中比较类的运算符(<  >  ==  !=)是优先于逻辑运算符(and or not)的
所以说这个表达式等同于 not (fish_record[25 : 27] != "乌龟")
fish_record[25 : 27] != "乌龟"  这个表达式意思是列表中25-27内容不是“乌龟”,实际情况内容正是“乌龟”,得到的结果是 False
前面加上not ,整个表达式 not fish_record[25 : 27] != "乌龟" 输出结果就是 True

所以if判断条件成立,继续判断 int(fish_record[27]) %2 == 0 即 列表中27位是奇数还是偶数,对应输出结果


not fish_record[25 : 27] != "乌龟"这个表达式可以简化成  fish_record[25 : 27] == "乌龟"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-27 12:22:17 | 显示全部楼层
SHRS23 发表于 2020-6-27 00:49
“颜值更高”什么意思,我没听过课不知道什么意思
要求是什么也不清楚
只能解释红色代码的意思了

首先感谢这位鱼油的解乏!

这个练习题的要求是用字符串记录内容
用条件判断找出乌龟,想知道钓了几只,并且告诉是奇数还是偶数

“颜值高”=“代码编的好看、简洁、整齐”,这段代码通过下标的方式去表达我觉得很憋屈,是不是有其他方法去表达?

”elif not fish_record[25 : 27] != "乌龟":”
    if int(fish_record[27]) %2 == 0:
        print("找到乌龟了, 是%d只,偶数" % (int(fish_record[27])))
    else:
        print("找到乌龟了, 是%d只,奇数" % (int(fish_record[27])))
红色的部分我懂了, ‘’ if int(fish_record[27]) %2 == 0:”这个是表示能被2整除的意思是吧?那么print里面的 内容我暂时不理解,可以帮我解答一下吗?
比如%d是什么?
”print("找到乌龟了, 是%d只,偶数"  %   (int(fish_record[27])))”蓝色部分的要怎么去理解?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-27 14:14:53 | 显示全部楼层
wtf??? 发表于 2020-6-27 12:22
首先感谢这位鱼油的解乏!

这个练习题的要求是用字符串记录内容

%d这是占位符啊,表示在打印时这个位置被后面括号里的整数代替, 类似的还有%s  %f 之类的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-6-27 17:45:04 | 显示全部楼层
天道无子 发表于 2020-6-27 14:14
%d这是占位符啊,表示在打印时这个位置被后面括号里的整数代替, 类似的还有%s  %f 之类的

原来这个 %d 在后面的格式化有介绍到,谢谢了哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-28 13:54:20 | 显示全部楼层
wtf??? 发表于 2020-6-27 12:22
首先感谢这位鱼油的解乏!

这个练习题的要求是用字符串记录内容

%d 和其他大部分编程语言一样代表以整数形式输出

第二个%就是格式化字符串的意思


引用一段python官方文档 https://docs.python.org/zh-cn/3/ ... d-string-formatting

7.1.4. 旧的字符串格式化方法
% 运算符(求余)也可用于字符串格式化。 给定 'string' % values,则 string 中的 % 实例会以零个或多个 values 元素替换。 此操作通常被称为字符串插值。 例如:

>>> import math
>>> print('The value of pi is approximately %5.3f.' % math.pi)
The value of pi is approximately 3.142.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 05:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表