巨蟒python全棧開發-第3天

1python

今日做業git

1.有變量name = "aleX leNb" 完成以下操做:ide

# 1)移除 name 變量對應的值兩邊的空格,並輸出處理結果
''''''
'''
# name = "     aleX leNb"
# print(name)
# print(name.strip())
'''
# 2)移除name變量左邊的"al"並輸出處理結果
'''
# name = "aleX leNb"
# print(name.replace("al",""))
'''
'''
name = "aleX leNb"
s1=name.strip("al")
print(s1)
'''
'''
name = "aleX leNb"
s1=name.lstrip('al')
print(s1)
'''
# 3)移除name變量右⾯的"Nb",並輸出處理結果

'''
name = "aleX leNb"
print(name.replace("Nb",""))
'''
'''
name = "aleX leNb"
s1=name.strip("Nb")
print(s1)
'''
'''
name = "aleX leNb"
s1=name.rstrip('Nb')
print(s1)
'''
# 4)移除name變量開頭的a"與最後的"b",並輸出處理結果
#strip
'''
name = "aleX leNb"
name=name.replace('a','')
name=name.replace('b','')
print(name)
'''

# 5)判斷 name 變量是否以 "al" 開頭,並輸出結果

'''
name = "aleX leNb"
s=name.startswith('al')
print(s)          #True
'''

# 6)判斷name變量是否以"Nb"結尾,並輸出結果
'''
name = "aleX leNb"
s=name.endswith('Nb')
print(s)          #True
'''

# 7)將 name 變量對應的值中的 全部的"l" 替換爲 "p",並輸出結果
'''
name = "aleX leNb"
s=name.replace("l",'p')
print(s)
'''

# 8)將name變量對應的值中的第⼀個"l"替換成"p",並輸出結果

'''
name = "aleX leNb"
s=name.replace("l",'p',1)
print(s)
'''

# 9)將 name 變量對應的值根據 全部的"l" 分割,並輸出結果。

'''
name = "aleX leNb"
s=name.split('l')
print(s)
'''

# 10)將name變量對應的值根據第⼀個"l"分割,並輸出結果。

'''
name = "aleX leNb"
s=name.split('l',1)
print(s)
'''

# 11)將 name 變量對應的值變⼤寫,並輸出結果

'''
name = "aleX leNb"
s=name.upper()
print(s)
'''

# 12)將 name 變量對應的值變⼩寫,並輸出結果
'''
name = "aleX leNb"
s=name.lower()
print(s)
'''

# 13)將name變量對應的值⾸字⺟"a"⼤寫,並輸出結果
'''
name = "aleX leNb"
s=name.title()
print(s)
'''

# 14)判斷name變量對應的值字⺟"l"出現⼏次,並輸出結果

'''
name = "aleX leNb"
s=name.count('l')
print(s)
'''

# 15)若是判斷name變量對應的值前四位"l"出現⼏次,並輸出結果
'''
???
name = "aleX leNb"
s=name.count('l',4)
print(s)
'''

'''
# name = "aleX leNb"
# s=name.count('l',0,4)   #區間尋找,從字符串的0-4尋找
# print(s)
'''

'''
name = "aleX leNb"
s=name[0:4].count('l')  #從第1個開始到第4個,切片處理
print(s)
'''
'''
name = "aleX leNb"
s=name[0:4].count('l')  #從第1個開始到第4個,切片處理
print(s)
'''

# 16)從name變量對應的值中找到"N"對應的索引(若是找不到則報錯),並輸出結果
'''
name = "aleX leNb"
s=name.index("N")
print(s)
'''


# name = "aleX leNb"
# s=name.index("N")
# print(s)              #結果:7


# 17)從name變量對應的值中找到"N"對應的索引(若是找不到則返回-1)輸出結果

'''
name = "aleX leNb"
s=name.find("N")
print(s)                #結果:
'''

# 18)從name變量對應的值中找到"X le"對應的索引,並輸出結果

'''
name = "aleX leNb"
s=name.index('X le')
print(s)
'''

# 19)請輸出 name 變量對應的值的第 2 個字符?

#這句話有歧義:能夠是第二個字符,也能夠是索引爲2
'''
# name = "aleX leNb"
# s=name[1]
# print(s)            #l

# name = "aleX leNb"
# s=name[2]
# print(s)    
'''
# 20)請輸出 name 變量對應的值的前 3 個字符?

# name = "aleX leNb"
# s=name[0:3]
# print(s)

# 21)請輸出 name 變量對應的值的後 2 個字符?

# name = "aleX leNb"
# s=name[-2:]
# print(s)

# 22)請輸出 name 變量對應的值中 "e" 所在索引位置?
#22)
'''
name = "aleX leNb"
s=name.index('e')
print(s)
# s1=s+1+name[3:].index('e')
s1=s+1+name[3:].index('e')
print(s1)
'''

"""
老師講解 while循環//for循環差很少是放棄索引
ame = "aleX leNb"
i=0
while i<len(name):
    if name[i]=='e':
        print(i)
    i+=1

"""


# name = "aleX leNb"
# print(name.find('e'),name.find('e',3))
2.有字符串s = "123a4b5c"
# 1)經過對s切⽚造成新的字符串s1,s1 = "123"
'''
s = "123a4b5c"
s1=s[0:3]  #或者#s1=s[:3]
print(s1)
'''
# 2)經過對s切⽚造成新的字符串s2,s2 = "a4b"

'''
s = "123a4b5c"
s2=s[3:6]
print(s2)
'''

# 3)經過對s切⽚造成新的字符串s3,s3 = "1345"
'''
s = "123a4b5c"
s3=s[::2]
print(s3)
'''

# 4)經過對s切⽚造成字符串s4,s4 = "2ab"

'''
# s = "123a4b5c"
# s3=s[1:-1:2]   #s3=s[1:6:2]
# print(s3)
'''

# 5)經過對s切⽚造成字符串s5,s5 = "c"
'''
# s = "123a4b5c"
# s5=s[-1]
# print(s5)
'''
# 6)經過對s切⽚造成字符串s6,s6 = "ba2"

'''
s = "123a4b5c"
s5=s[-3:0:-2]
print(s5)
'''
'''
s = "123a4b5c"
s5=s[-3::-2]
print(s5)
'''

3.使⽤while和for循環分別打印字符串s="asdfer"中每一個元素。字體

'''
print(s[0])
'''
'''
s="asdfer"
for i in s:     #i是個變量,隨便起都行
    print(i)
'''

'''
s="asdfer"
count=0
while count<len(s):
    print(s[count])
    count+=1
'''
'''
s='abcdef'
i=0
while i<len(s):
    print(s[i])
    i+=1
'''

'''

'''
'''
s='abcdef'
for i in s:
    print(i)
'''

4.使⽤for循環對s="asdfer"進⾏循環,可是每次打印的內容都是"asdfer"。編碼

'''
s="asdfer"
for i in s:
    print(s)
'''

5.使⽤for循環對s="abcdefg"進⾏循環,每次打印的內容是每一個字符加上sb,# 例如:asb, bsb,csb,...gsb。spa

'''
方法一
s="asdfer"
for i in s:
    print(i+'sb')
'''


'''
方法二
s="asdfer"
count=0
while count<len(s):
    print(s[count]+'ab')
    count+=1
'''
6.使⽤for循環對s="321"進⾏循環,打印的內容依次是:"倒計時3秒","倒計時
2秒","倒計時1秒","出發!"。
'''
s="321"
for i in s:
    print("倒計時%s秒"%(i))
    print(f"倒計時{c}秒")   #格式化輸出
print('出發!')
'''
""" #for循環+else
s="321"
for i in s:
    print("倒計時%s秒"%(i))
    print(f"倒計時{c}秒")
else:  #當for中的循環結束以後自動執行else,break不會觸發else的執行
    print('出發!')
"""

'''
while 1:
    break   #直接出來,不會管else
else:
    print('出發')

'''
'''
while False:
    break   #直接出來,不會管else
else:
    print('出發')   #結果  :出發
'''
7,實現⼀個整數加法計算器(兩個數相加):
如:content = input("請輸⼊內容:") ⽤戶輸⼊:5+9或5+ 9或5 + 9,而後進
⾏分割再進⾏計算。
'''
content = input("請輸⼊內容:")
count=content.split('+')
sum=0
# print(count)
for i in count:
    sum=sum+int(i)
print(sum)
'''

'''
#老師講解
'''
'''
content = input("請輸⼊內容:") #⽤戶輸⼊:5+9
#字符串切割
lst=content.split('+')
#獲取到兩個數
a=lst[0]
b=lst[1]
print(int(a)+int(b))
'''
8,升級題:實現⼀個整數加法計算器(多個數相加):
如:content = input("請輸⼊內容:") ⽤戶輸⼊:5+9+6 +12+ 13,而後進⾏
分割再進⾏計算。
'''
# content = input("請輸⼊內容:")
# count=content.split('+')
# sum=0
# # print(count)
# for i in count:
#     sum=sum+int(i)
# print(sum)
'''
'''
#老師講解,這個題目在這裏有點超前
#自動去空格,int能夠幫助把字符串裏的空格去掉
#int,用的是strip(),只能去除兩邊的空格,中間的空格去不掉
#strip(),括號裏邊能夠加上去掉的內容
content = input("請輸⼊內容:")
lst=content.split('+')
sum=0
for el in lst:   #可使用for循環遍歷列表
    sum+=int(el)
print(sum)

'''
'''
content = input("請輸⼊內容:").replace(" ","") #空格所有替換成空
lst=content.split('+')
sum=0
for el in lst:   #可使用for循環遍歷列表
    sum+=int(el)
print(sum)
'''
#這個題難點在於,當前尚未學到這塊知識
#無法解釋負號問題
"""
# re
#eval解決方案

"""
9,計算⽤戶輸⼊的內容中有⼏個整數(以個位數爲單位)。
如:content = input("請輸⼊內容:") # 如fhdal234slfh98769fjdla
'''
content = input("請輸⼊內容:")
count=0
for i in content:
    if i.isdigit():
        count+=1
print(count)
'''
#c.isnumeric(),判斷的範圍更廣

# content = input("請輸⼊內容:")
# count=0
# for i in content:
#     if i.isdigit():
#         count+=1
# print(count)
十、寫代碼,完成下列需求:
⽤戶可持續輸⼊(⽤while循環),⽤戶使⽤的狀況:
輸⼊A,則顯示⾛⼤路回家,而後在讓⽤戶進⼀步選擇:
是選擇公交⻋,仍是步⾏?
選擇公交⻋,顯示10分鐘到家,並退出整個程序。
選擇步⾏,顯示20分鐘到家,並退出整個程序。
輸⼊B,則顯示⾛⼩路回家,並退出整個程序。
輸⼊C,則顯示繞道回家,而後在讓⽤戶進⼀步選擇:
是選擇遊戲廳玩會,仍是⽹吧?
選擇遊戲廳,則顯示 ‘⼀個半⼩時到家,爸爸在家,拿棍等你。’並讓其
從新輸⼊A,B,C選項。
選擇⽹吧,則顯示‘兩個⼩時到家,媽媽已作好了戰⽃準備。’並讓其重
新輸⼊A,B,C選項。
#這個題目就是練代碼
'''##字體轉換成百家姓以後,編碼發生了改變,因此儘可能本身敲這些字
while 1:
    s=input("請輸入ABCD進行選擇回家方式:")
    if s=='A':
        k=input('選擇公交⻋,仍是步⾏')
        print(k)
        if k == '公交車':
            print('10分鐘到家')
            break
        elif k=='步行':
            print('20分鐘到家')
            break
    elif s=='B':
        print('走小路回家')
        break
    elif s=='C':
        print('繞道回家')
        k = input('選擇遊戲廳,仍是⽹吧')
        if k=='遊戲廳':
            print('⼀個半⼩時到家,爸爸在家,拿棍等你')
        else:
            print('兩個⼩時到家,媽媽已作好了戰⽃準備。')
'''

"""#老師講解
"""

'''
while 1:
    content=input('請輸入ABC:').upper()
    if content=='A':
        print('走大路回家')
        tra=input('請選擇公交車仍是不行')
        if tra=="公交車":
            print("10分鐘到家")
        else:
            print("20分鐘到家")
        break
        # pass  #過   保證語法正確,先佔着
    elif content=='B':
        print('走小路回家')
        break
    elif content=='C':
        print('繞道回家')
        play=input('去遊戲廳仍是網吧?')
        if play=='遊戲廳':
            print("1個半小時回家,,爸爸在家,拿棍等你")
        else:
            print('兩個⼩時到家,媽媽已作好了戰⽃準備。')
        # pass
#量大,可是邏輯性不強
'''

11.寫代碼:計算 1 - 2 + 3 ... + 99 中除了88之外全部數的總和?code

# sum=0
# for i in range(1,100):
#     if i==88:
#         i=89
#         # continue
#     if i%2==1:
#         sum+=i
#     elif i%2==0:
#         sum-=i
# print(sum)
'''
count = 1
sum = 0
while count < 100:
    if count == 88:
        count = count + 1
        continue
    if count %2 == 0:# 偶數
        sum = sum - count
    else:
        sum = sum + count
    count = count + 1
print(sum)
'''
12. (升級題)判斷⼀句話是不是回⽂. 回⽂: 正着念和反着念是⼀樣的. 例如, 上海
⾃來⽔來⾃海上(升級題)
# s=input("請輸入一句話:")
# s1=s[::-1]
# if s==s1:
#     print('迴文')
# else:
#     print("不是迴文")

13. 輸⼊⼀個字符串,要求判斷在這個字符串中⼤寫字⺟,⼩寫字⺟,數字,其它字符共出現了多少次,並輸出出來orm

'''
s=input("請輸⼊⼀個字符串:")
digit_l=0
upper_l=0
lower_l=0
other_1=0
for i in s:
    if i.isdigit():
        digit_l+=1
    elif i.islower():
        lower_l+=1
    elif i.isupper():
        upper_l+=1
    else:
        other_1+=1
print(digit_l,lower_l,upper_l,other_1)
'''
1四、製做趣味模板程序需求:等待⽤戶輸⼊名字、地點、愛好,根據⽤戶的名
字和愛好進⾏任意現實 如:敬愛可親的xxx,最喜歡在xxx地⽅⼲xxx
'''#三種格式化方式
name=input("請輸入名字:")
place=input("請輸入地點:")
love=input("請輸入愛好:")
print("敬愛可親的%s,最喜歡在%s地⽅⼲%s"%(name,place,love))
print("敬愛可親的{0},最喜歡在{1}地⽅⼲{2}".format(name,place,love))
print(f"敬愛可親的{name},最喜歡在{place}地⽅⼲{love}")
'''

15.(升級題) 給出百家姓. 而後⽤戶輸⼊⼀個⼈的名字. 判斷這個⼈是不是百家blog

姓中的姓⽒(升級題)
百家姓:
目前只能作一個low版本的,可是邏輯是有問題的
first_names = """
趙錢孫李,周吳鄭王。
馮陳褚衛,蔣沈韓楊。
朱秦尤許,何呂施張。
孔曹嚴華,⾦魏陶姜。
戚謝鄒喻,柏⽔竇章。
雲蘇潘葛,奚範彭郎。
魯⻙昌⻢,苗鳳花⽅。
俞任袁柳,酆鮑史唐。
費廉岑薛,雷賀倪湯。
滕殷羅畢,郝鄔安常。
樂於時傅,⽪卞⻬康。
伍餘元⼘,顧孟平⻩。
和穆蕭尹,姚邵湛汪。
祁⽑禹狄,⽶⻉明臧。
計伏成戴,談宋茅龐。
熊紀舒屈,項祝董梁。
杜阮藍閔,席季麻強。
賈路婁危,江童顏郭。
梅盛林刁,鍾徐邱駱。
⾼夏蔡⽥,樊胡凌霍。
虞萬⽀柯,昝管盧莫。
經房裘繆,⼲解應宗。
丁宣賁鄧,鬱單杭洪。
包諸左⽯,崔吉鈕龔。
程嵇邢滑,裴陸榮翁。
荀⽺於惠,甄曲家封。
芮羿儲靳,汲邴糜鬆。
井段富巫,烏焦巴⼸。
牧隗⼭⾕,⻋侯宓蓬。
全郗班仰,秋仲伊宮。
寧仇欒暴,⽢鈄厲戎。
祖武符劉,景詹束⻰。
葉幸司韶,郜黎薊薄。
印宿⽩懷,蒲邰從鄂。
索鹹籍賴,卓藺屠蒙。
池喬陰鬱,胥能蒼雙。
聞莘黨翟,譚貢勞逄。
姬申扶堵,冉宰酈雍。
卻璩桑桂,濮⽜壽通。
邊扈燕冀,郟浦尚農。
溫別莊晏,柴瞿閻充。
慕連茹習,宦艾⻥容。
向古易慎,⼽廖庾終。
暨居衡步,都耿滿弘。
匡國⽂寇,⼴祿闕東。
歐⽎沃利,蔚越夔隆。
師鞏厙聶,晁勾敖融。
冷訾⾟闞,那簡饒空。
曾毋沙乜,養鞠須豐。
巢關蒯相,查後荊紅。
遊竺權逯,蓋益桓公。
万俟司⻢,上官歐陽。
夏侯諸葛,聞⼈東⽅。
赫連皇甫,尉遲公⽺。
澹臺公冶,宗政濮陽。
淳于單于,太叔申屠。
公孫仲孫,軒轅令狐。
鍾離宇⽂,⻓孫慕容。
鮮于閭丘,司徒司空。
丌官司寇,仉督⼦⻋。
顓孫端⽊,巫⻢公⻄。
漆雕樂正,壤駟公良。
拓跋夾⾕,宰⽗⾕梁。
晉楚閆法,汝鄢塗欽。
段⼲百⾥,東郭南⻔。
呼延歸海,⽺⾆微⽣。
嶽帥緱亢,況郈有琴。
梁丘左丘,東⻔⻄⻔。
商牟佘佴,伯賞南宮。
墨哈譙笪,年愛陽佟。
第五⾔福,百家姓終。
 """
View Code
# name=input("請輸入一個名字:").strip()
# name1=name[0]#這裏只能查找單姓
# if name1 in first_names:
#     print("good,在百家姓內")
# else:
#     print("這個名字姓氏不在百家姓中!")

'''
# 這個題目是有問題的
#歐陽娜娜
#順序:
{歐,歐陽,歐陽娜,歐陽娜娜}
'''

'''
#擴展
lst=["上官",'歐陽','趙','錢','孫']
name=input('請輸入你的名字') #歐陽南妮
for el in lst:   #el是姓
    if name.startswith(el):
        print('在百家姓裏面的')
        break
else:
    print("對不起,姓氏不在百家姓裏")

'''

練手題:索引

分別⽤while,for循環輸出字符串s = input("你想輸⼊的內容")的每⼀個字符

相關文章
相關標籤/搜索