wodeai999 发表于 2021-9-12 11:43:44

查找字符串次数

def findStr(desStr, subStr):
    count = 0
    length = len(desStr)
    if subStr not in desStr:
      print('在目标字符串中未找到字符串!')
    else:
      for each1 in range(length-1):      
            if desStr == subStr:
                if desStr == subStr:
                  count += 1
                  
      print('子字符串在目标字符串中共出现 %d 次' % count)

求问else后面部分的语句意思,还有问啥要用length函数,能否直接查找某2个字符在不在整个字符串中呢

傻眼貓咪 发表于 2021-9-12 14:07:01

你的代碼解說:
def findStr(desStr, subStr):
    count = 0
    length = len(desStr) # 定義長度方便等下進行檢查
    if subStr not in desStr:
      print('在目标字符串中未找到字符串!')
    else: # 當發現 subStr 在 desStr 裡面時
      for each1 in range(length-1): # 從第一個字符開始遍歷至最後第二個位置(不包括最後一個)   
            if desStr == subStr: # 當發現兩個字符串的字符相同時
                if desStr == subStr: # 發現字符串的第二個字符也相同時
                  count += 1 # 計算相同次數
                  
      print('子字符串在目标字符串中共出现 %d 次' % count)如果你是想判斷某個字符串是否在另一個字符串裡,而且出現次數是多少,但其實你的代碼是錯的,因為我用你的代碼做測試:a = "banana"
b = "nana"
findStr(a, b)子字符串在目标字符串中共出现 2 次正確應該是1次。{:5_91:}

wodeai999 发表于 2021-9-12 15:49:24

傻眼貓咪 发表于 2021-9-12 14:07
你的代碼解說:
如果你是想判斷某個字符串是否在另一個字符串裡,而且出現次數是多少,但其實你的代碼是錯 ...

longstr = input('请输入目标字符串:')
shortstr = input('请输入子字符串(两个字符):')
findstr(longstr,shortstr)
请问最后这一句是什么意思哇,这个函数在第一行不是已经定义了

傻眼貓咪 发表于 2021-9-12 15:55:00

longstr = input('请输入目标字符串:') # 輸入字符串
shortstr = input('请输入子字符串(两个字符):') # 輸入字符串
findstr(longstr,shortstr) # 執行函數,參數是以上兩個字符串
範例:def funcionA(x, y):
    print(x+y)

a = 13 # 變量 a
b = 5 # 變量 b
funcionA(a, b) # 執行函數,參數是 a 和 b18

傻眼貓咪 发表于 2021-9-12 16:14:32

wodeai999 发表于 2021-9-12 15:49
longstr = input('请输入目标字符串:')
shortstr = input('请输入子字符串(两个字符):')
findstr(lon ...

針對你的題目,我的代碼是:
def isInside(main, sub): # 函數
    size = len(sub) # 定義子字符串長度,方便等下切割測試(採用段落切割檢查)
    count = 0
    for i in range(len(main)-size): # 從第1個字符到最後第 size 字符做檢查
      if sub in main: # 開始切割檢查
            count += 1
    return count # 返回次數

a = "banana"
b = "nana"
print(isInside(a, b))1

代碼流程:
main = "banana"
sub = "nana"

檢查範圍:range(len(main)-size)也就是 "ban"(因為 "nana" 長度是4 ,就算"banana" 只有後面 3 個一樣也肯定不對,因為必須 4 個字符一樣)
當 i = "b"
檢查sub 是在 main 裡面(意思就是檢查sub 是在 "bana" 裡面)
答案:沒有

當 i = "a"
檢查 sub 是在 main 裡面(意思就是檢查sub 是在 "anan" 裡面)
答案:沒有

當 i = "n"
檢查 sub 是在 main 裡面(意思就是檢查sub 是在 "nana" 裡
答案:有
count + 1

檢查完畢,返回 count 值(共 1 次)

wodeai999 发表于 2021-9-13 09:16:28

傻眼貓咪 发表于 2021-9-12 16:14
針對你的題目,我的代碼是:




看懂了 谢谢大佬
页: [1]
查看完整版本: 查找字符串次数