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

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

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

同学,你好!

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Solution:
    def detectCapital(self, st:str):
        #分隔语句
        st_split=st.split(" ")
        #判断第一个单词是否符合要求
        if st_split[0].istitle() or st_split[0].isupper():
            #判断首个单词后的单词是否符合要求
            for in st_split[1:]:
                #把整个单词转为小写判断是否是["python","java","machinejearning","datamining"]的一个
                if i.lower() in ["python","java","machinejearning","datamining"]:
                    #在是的情况下判断是否不符合任务详细二
                    if not in ["Python","Java","Machinejearning","DataMining"]:
                        #不符合返回False
                        return False
                    #在语句中出现的["Python","Java","Machinejearning","DataMining"]符合任务详细二的情况下跳过本单词
                    continue
                #判断是否符合任务详细一和任务详细三
                for 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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    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[0not in text_list:
                        # 不符合返回False
                        return False
                #判断首个单词后的单词是否符合要求
                for in st_split[1:]:
                    #把整个单词转为小写判断是否是["python","java","machinejearning","datamining"]的一个
                    if i.lower() in ["python","java","machinejearning","datamining"]:
                        #在是的情况下判断是否不符合任务详细二
                        if not in text_list:
                            #不符合返回False
                            return False
                        #在语句中出现的["Python","Java","Machinejearning","DataMining"]符合任务详细二的情况下跳过本单词
                        continue
                    #判断是否符合任务详细一和任务详细三
                    for 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下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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