老师您好,希望这题您可以给我点建议!

老师您好,希望这题您可以给我点建议!

https://img1.sycdn.imooc.com//climg/617fe14d09ca4d7a12210722.jpg

下面是我自己写的代码 写着写着就乱了 呜呜呜 还找不出来原因 老师可以给我点建议吗 谢谢老师

https://img1.sycdn.imooc.com//climg/617fe18709ea04cb15690847.jpg

https://img1.sycdn.imooc.com//climg/617fe19c09f4400915760846.jpg

https://img1.sycdn.imooc.com//climg/617fe1b10959239715320821.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕凡 2021-11-02 13:43:12

同学,你好!

以上题目如考虑所有情况,同学可以参考以下代码:

class Solution:
    def detectCapital(self, st:str):
        #分隔语句
        st_split=st.split(" ")
        #判断第一个单词是否符合要求
        if st_split[0].istitle() or st_split[0].isupper():
            #判断首个单词后的单词是否符合要求
            for i in st_split[1:]:
                #把整个单词转为小写判断是否是["python","java","machinejearning","datamining"]的一个
                if i.lower() in ["python","java","machinejearning","datamining"]:
                    #在是的情况下判断是否不符合任务详细二
                    if i not in ["Python","Java","Machinejearning","DataMining"]:
                        #不符合返回False
                        return False
                    #在语句中出现的["Python","Java","Machinejearning","DataMining"]符合任务详细二的情况下跳过本单词
                    continue
                #判断是否符合任务详细一和任务详细三
                for j in i:
                    #判断是否存在字母大写或数字的情况下单词不是大写
                    if (j.isdigit( ) or j.isupper( )) and not i.isupper():
                            return False
            #以上条件没有出现False,满足任务详细1,2,3
            return True
        #第一个单词不满足条件返回False
        else:
            return False
st="I love Python"
st="python love me"
st="JUST DO IT"
st="I come from HK"
st="Python is YOU 3D"
st="You Python"
So=Solution()
print(So.detectCapital(st))

祝学习愉快~

  • 提问者 TheCreamPuff #1

    老师您好 第八行 可能需要改为

    for i in st_split[0:]:

    因为 我测试了一下您的代码

    st1 ="PYTHON Python Python"

    返回了Ture

    2021-11-03 18:53:52
  • 好帮手慕凡 回复 提问者 TheCreamPuff #2

    同学,你好!

    把第八行修改为for i in st_split[0:]:会导致从第一个单词开始判断,第一个单词在只首字母大写的情况下,以上代码会出错,如下图:

    https://img1.sycdn.imooc.com//climg/61833e4d09fd00ad05290252.jpg

    同学可以参考以下代码:完善对第一个单词的判断

    https://img1.sycdn.imooc.com//climg/61833f0909feebfc11420586.jpg

    class Solution:
        def detectCapital(self, st:str):
            text_list = ["Python", "Java", "Machinejearning", "DataMining"]
            #分隔语句
            st_split=st.split(" ")
            #判断第一个单词是否符合要求
            if st_split[0].istitle() or st_split[0].isupper():
                if st_split[0].lower() in ["python", "java", "machinejearning", "datamining"]:
                    if st_split[0] not in text_list:
                        # 不符合返回False
                        return False
                #判断首个单词后的单词是否符合要求
                for i in st_split[1:]:
                    #把整个单词转为小写判断是否是["python","java","machinejearning","datamining"]的一个
                    if i.lower() in ["python","java","machinejearning","datamining"]:
                        #在是的情况下判断是否不符合任务详细二
                        if i not in text_list:
                            #不符合返回False
                            return False
                        #在语句中出现的["Python","Java","Machinejearning","DataMining"]符合任务详细二的情况下跳过本单词
                        continue
                    #判断是否符合任务详细一和任务详细三
                    for j in i:
                        #判断是否存在字母大写或数字的情况下单词不是大写
                        if (j.isdigit( ) or j.isupper( )) and not i.isupper():
                                return False
                #以上条件没有出现False,满足任务详细1,2,3
                return True
            #第一个单词不满足条件返回False
            else:
                return False
    st="I love Python"
    # st="python love me"
    # st="JUST DO IT"
    # st="I come from HK"
    # st="Python is YOU 3D"
    # st="You Python"
    st="PYTHON Python Python"
    So=Solution()
    print(So.detectCapital(st))

    祝学习愉快~

    2021-11-04 10:02:39
  • 提问者 TheCreamPuff #3

    老师 您觉得这题 需不需要首先判断 短语中是否都是单词呢 比如s=‘I love abc’ 这个是不是应该要返回Ture 因为这个问题我和我的指导老师对峙起来了 我的指导老师坚持要返回false🙃 老师 我觉得您比较专业 能否给我点建议

    2021-11-04 11:29:07
一只哈士奇 2021-11-01 23:17:02

多练吧 练着练着就好了 哪怕是肌肉记忆

  • 提问者 TheCreamPuff #1

    同学你好 那你看出我里面哪里出问题了吗 哈哈哈

    2021-11-01 23:31:30
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师