-
輸入一個字元串,列印所有奇數位上的字元(下标是1,3,5,7…位上的字元)
例如: 輸入**'abcd1234 ’ ** 輸出**‘bd24’**
str1=input('請輸入字元串:') for i in range(1,len(str1),2): print(str1[i])
- 輸入使用者名,判斷使用者名是否合法(使用者名長度6~10位)
user=input('請輸入使用者名:') if 6<=len(user)<=10: print(user,'輸入合法') else: print('輸入不合法')
-
輸入使用者名,判斷使用者名是否合法(使用者名中隻能由數字和字母組成)
例如: ** ‘abc’ ** — 合法 ** ‘123’ ** — 合法 **‘abc123a’ ** — 合法
# 思路:将輸入的字元串拆分為數字和字母,如果新的字元串長度和原來的相等則是合法使用者名,如果長度不等,則不是 user=input('請輸入使用者名:') str1=user.upper() strs='' for i in str1: if '0'<=i<='9'or 'A'<=i<='Z': strs+=i if len(strs)==len(user): print('合法') else: print('不合法')
-
輸入使用者名,判斷使用者名是否合法(使用者名必須包含且隻能包含數字和字母,并且第一個字元必須是大寫字母)
例如: ‘abc’ — 不合法 ‘123’ — 不合法 ‘abc123’ — 不合法 ‘Abc123ahs’ — 合法
# 思路1:将輸入的字元串拆分為數字和字母,如果新的字元串長度和原來的相等則是合法使用者名,如果長度不等,則不是 str1 = input('請輸入使用者名:') str2 = str1.upper() # 将str1所有的字母轉換成大寫 strs = '' # 定義一個變量儲存大寫字母 strs2 = '' # 定義一個變量儲存數字 if 'A' <= str1[0] <= 'Z': # 判斷首字母是否大寫 for i in str2: if 'A' <= i <= 'Z': strs += i # 篩選str2的大寫字母存放到strs裡面 for j in str2: if '0' <= j <= '9': strs2 += j # 将元素中的數字全部放到strs2裡面 if len(strs) != 0 and len(strs2) != 0: # 判斷存放的大寫字母和數字數量是否為零 strs3 = strs + strs2 # 将兩個字母和數字放入strs3 if len(strs3) == len(str1): # 判斷strs3和str1的長度是否相等 print('合法') else: print('不合法') else: print('不合法') else: print('不合法')
# 方法二
name = input('請輸入使用者名:')
if 'A' <= name[0] <= 'Z':
have_num = False
for c in name[1:]:
if not ('a' <= c <= 'z' or 'A' <=c<= 'Z' or '0' <= c <= '9'):
print('不合法')
break
else:
if '0' <= c <= '9':
have_num = True
else:
if have_num == True:
print('合法')
else:
print('不合法')
else:
print('不合法')
-
輸入一個字元串,将字元串中所有的數字字元取出來産生一個新的字元串
例如:輸入**‘abc1shj23kls99+2kkk’** 輸出:'123992’
zfc=input('請輸入字元串:') zfc_num='' for num in zfc: if '0'<=num<='9': zfc_num+=num print(zfc_num)
-
輸入一個字元串,将字元串中所有的小寫字母變成對應的大寫字母輸出 (用upper方法和自己寫算法兩種方式實作)
例如: 輸入**‘a2h2klm12+’ ** 輸出 'A2H2KLM12+'
zm =input('請輸入字元串:') # 方法一 zm_dx = '' print(ord('z')) for xx in zm: if 97 <= ord(xx) <= 122: xx1=ord(xx) - 32 zm_dx+=chr(xx1) else: zm_dx+=xx print(zm_dx) # 方法二 print(zm.upper())
-
輸入一個小于1000的數字,産生對應的學号
例如: 輸入**‘23’,輸出’py1901023’** 輸入**‘9’, 輸出’py1901009’** 輸入**‘123’,輸出’py1901123’**
# 方法一 num = 'py1901' nums = '' xh = input('請輸入學号:') if int(xh) < 10: nums = num + '00' + xh print(nums) elif int(xh) < 100: nums = num + '0' + xh print(nums) elif int(xh) < 1000: nums = num + xh print(nums) else: print('輸入有誤') # 方法二 num = 'py1901' xh = input('請輸入100以内的學号:') print(f'{num}{xh.zfill(3)}')
-
輸入一個字元串,統計字元串中非數字字母的字元的個數
例如: 輸入**‘anc2+93-sj胡說’** 輸出:4 輸入**’===’** 輸出:3
strs1=input('請輸入字元串:') strs2=strs1.lower() strs3='' for i in strs2: if 'a'<=i<='z'or '0'<=i<='9': strs3+=i nums=len(strs1)-len(strs3) print(nums)
-
輸入字元串,将字元串的開頭和結尾變成’+’,産生一個新的字元串
例如: 輸入字元串**‘abc123’, 輸出’+bc12+’**
# 方法一 str1=input('請輸入字元串:') str2='+' str3='' for i in range(1,len(str1)-1): str3+=str1[i] print(str3) print(f'{str2}{str3}{str2}') # 方法二 str1='123456' str2='+' new_str=str1.replace(str1[0],str2).replace(str1[-1],str2) # 将下标為0和-1的字元替換成+ print(new_str) # +2345+
···
# 方法3
str1='abc123'
new_str=f'+{str1[1:-1]}+'
print(new_str)
- 輸入字元串,擷取字元串的中間字元
例如: 輸入**‘abc1234’** 輸出:‘1’ 輸入**‘abc123’** 輸出**‘c1’**
str1=input('請輸入字元串:')
b=len(str1)//2
if len(str1)&1:
print(f'中間字元為{str1[b]}')
else:
print(f'中間字元為:{str1[b-1]}和{str1[b]}')
- 寫程式實作字元串函數find/index的功能(擷取字元串1中字元串2第一次出現的位置)
例如: 字元串1為:how are you? Im fine, Thank you! , 字元串2為:you, 列印8
str1='how are you? Imfine, Thankyou!'
str2='you'
index=str1.find(str2, 0, len(str1))
print(f'出現的位置為{index}')
- 擷取兩個字元串中公共的字元
例如: 字元串1為:abc123, 字元串2為: huak3 , 列印:公共字元有:a3
str1=' abc12311111'
str2='huak3222'
new_strs=' '.join(set(str1)&set(str2))
print(f'公共字元有: {new_strs}')