2021 1 28 day8 字串作業

2021-10-18 05:11:26 字數 4694 閱讀 4772

輸入乙個字串,列印所有奇數字上的字元(下標是1,3,5,7…位上的字元)

例如: 輸入**'abcd1234 』 ** 輸出**『bd24』**

str1 = 'abcd1234'

new = [x for x in str1[1:len(str1)+1:2]]

print((''.join(new)))

法二:str1 = 'abcd1234'

print(str1[1::2])

輸入使用者名稱,判斷使用者名稱是否合法(使用者名稱長度6~10位)

name = input('輸入使用者名稱:')

if 6 <= len(name) <= 10:

print('合法')

else:

print('不合法')

輸入使用者名稱,判斷使用者名稱是否合法(使用者名稱中只能由數字和字母組成)

例如:『abc』— 合法『123』— 合法『abc123a』— 合法

name = input('輸入使用者名稱:')

for x in name:

if ('0' <= x <= '9' or 'a' <= x <= 'z' or 'a' <= x <= 'z'):

print('合法')

else:

print('不合法')

break

輸入使用者名稱,判斷使用者名稱是否合法(使用者名稱必須包含且只能包含數字和字母,並且第乙個字元必須是大寫字母)

例如:『abc』— 不合法『123』— 不合法『abc123』— 不合法『abc123ahs』— 合法

name = input('輸入使用者名稱:')

if 'a'<=name[0] <='z':

num_count = 0

for x in name[1:]:

if not ('0' <= x <= '9' or 'a' <= x <= 'z' or 'a' <= x <= 'z'):

print('不合法')

break

else:

if '0' <= x <= '9':

num_count += 1

else:

if num_count >0:

print('合法')

else:

print('不合法')

else:

print('不合法')

輸入乙個字串,將字串中所有的數字字元取出來產生乙個新的字串

例如:輸入**『abc1shj23kls99+2kkk』** 輸出:'123992』

str1 = input('輸入字串:')

new = [ x for x in str1 if '0'<= x <='9']

print(''.join(new))

法二:str1 = input('輸入字串:')

new_str1 = ''

for x in str1:

if '0' <= x <= '9':

new_str1 += x

print(new_str1)

輸入乙個字串,將字串中所有的小寫字母變成對應的大寫字母輸出 (用upper方法和自己寫演算法兩種方式實現)

例如: 輸入**『a2h2klm12+』 ** 輸出'a2h2klm12+'

法一:

str1 = input('輸入字串:')

print(str1.upper())

法二:str1 = input('輸入字串:')

new = [ chr(ord(x)-32) if 'a'<= x <='z' else x for x in str1 ]

print(''.join(new))

法三:str1 = input('輸入字串:')

new_str1 = ''

for x in str1:

if 'a' <= x <= 'z':

u = chr(ord(x) - 32)

new_str1 += u

else:

new_str1 += x

print(new_str1)

輸入乙個小於1000的數字,產生對應的學號

例如: 輸入**『23』,輸出』py1901023』** 輸入**『9』, 輸出』py1901009』** 輸入**『123』,輸出』py1901123』**

num = input('輸入1000以內的數字:')

result = 'py1901'+(3 - len(num)) * '0' +num !!!!字串的拼接用加號

print(result)

法二:num = input('輸入1000以內的數字:')

result = 'py1901' + num.zfill(3) + num

print(result)

法三:num = int(input('輸入1000以內的數字:'))

result = 1901000 + num

print(f'py')

輸入乙個字串,統計字串中非數字字母的字元的個數

例如: 輸入**『anc2+93-sj胡說』** 輸出:4輸入**』===』** 輸出:3

str1 = input("輸入字串:")

print(len([x for x in str1 if not ('a' <=x <='z' or 'a'<= x <='z' or '0'<=x<='9')]))

輸入字串,將字串的開頭和結尾變成』+』,產生乙個新的字串

例如: 輸入字串**『abc123』, 輸出』+bc12+』**

str1 = input("輸入字串:")

print('+'+str1[1:-1]+'+') !!!切片與拼接

輸入字串,獲取字串的中間字元

例如: 輸入**『abc1234』** 輸出:『1』輸入**『abc123』** 輸出**『c1』**

str1 = input("輸入字串:")

a = len(str1)

b = a // 2

if a & 1:

print(str1[b])

else:

print(str1[b-1:b])

寫程式實現字串函式find/index的功能(獲取字串1中字串2第一次出現的位置)

例如: 字串1為:how are you? im fine, thank you!, 字串2為:you, 列印8

print('abbcd'.index('b'))  # 1

print('abbcd'.index('bc')) # 2

# print('abbcd'.index('bd')) # 報錯

print('abbcd'.find('ac')) # find在不存在時返回-1

str1 = 'how are you? im fine, thank you!'

str2 = 'you'

n = len(str2)

for x in range(len(str1)-n + 1):

if str1[x : x+n] == str2:

print(x)

break

else:

print('沒有!')

獲取兩個字串中公共的字元

例如: 字串1為:abc123, 字串2為:huak3, 列印:公共字元有:a3

str1 = set('abc123')

str2 = set('huak3')

common = str1 & str2

print(''.join(common))

法二:str1 = 'abc123'

str2 = 'huak3'

str3 = ''

for x in str1:

if x in str2 and x not in str3:

str3 += x

print(str3)

注:

print('a' in 'abc') # true

print('ab' in 'abc') # true

print('ac' in 'abc') # false

2021 1 28 day8 字串作業

輸入乙個字串,列印所有奇數字上的字元 下標是1,3,5,7 位上的字元 例如 輸入 abcd1234 輸出 bd24 str1 abcd1234 new x for x in str1 1 len str1 1 2 print join new 輸入使用者名稱,判斷使用者名稱是否合法 使用者名稱長度...

day8 字串作業

輸入乙個字串,列印所有奇數字上的字元 下標是1,3,5,7 位上的字元 例如 輸入 abcd1234 輸出 bd24 str1 abcd1234 list1 y for x,y in enumerate str1 if x 2 0 print join list1 輸入使用者名稱,判斷使用者名稱是否...

day8 字串作業

輸入乙個字串,列印所有奇數字上的字元 下標是1,3,5,7 位上的字元 例如 輸入 abcd1234 輸出 bd24 str1 abcd1234 str2 for a in range len str1 if a 1 str2 str1 a print str2 輸入使用者名稱,判斷使用者名稱是否合...