字串作業

2021-10-24 13:54:36 字數 4646 閱讀 3156

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

# 例如: 輸入**'abcd1234 ' ** 輸出**'bd24'**

a = 'abcjdnkwu11234jwe'

print(a[1::2])

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

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

# s = len(id_name)

# if 6 <= s <= 10:

# print('使用者名稱合法')

# else:

# print('使用者名稱不合法')

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

# 例如: **'abc'** — 合法 **'123'** — 合法 **『abc123a』** — 合法

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

# count = 0

# for x in id_name:

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

# pass

# else:

# count += 1

# if count > 0:

# print('不合法')

# else:

# print('合法')

# 方法2

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

# a =

# username_element_list = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',

# 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',

# 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',

# 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',

# '1', '2', '3', '4', '5', '6', '7', '8', '9')

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

# 例如: **'abc'** — 不合法 **'123'** — 不合法 **'abc123'** — 不合法 **'abc123ahs'** — 合法

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

# count = 0

# for x in id_name:

# if 'a' <= id_name[0] <= 'z' and (('a' <= x <= 'z' or 'a' <= x <= 'z') or '0' <= x <= '9'):

# pass

# else:

# count += 1

# if count > 0:

# print('不合法')

# else:

# print('合法')

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

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

# a = 'abc1shj23kls99+2kkk'

# str1 = ''

# for x in a:

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

# str1 += x

# print(str1)

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

# 例如: 輸入**'a2h2klm12+' ** 輸出 **'a2h2klm12+'**

# upper

a = 'a2h2klm12+'

print(str.upper(a))

# 方法2

str = input("請輸入字串:")

str1 = ''

for x in str:

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

m = chr(ord(x)-32)

str1 += m

print(str1)

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

# 例如: 輸入**'23'**,輸出**'py1901023'** 輸入**'9'**, 輸出**'py1901009'**

# 輸入**'123'**,輸出**'py1901123'**

# num = input('輸入乙個小於1000的數:')

# char = 'py1901'

# if len(num) <= 1:

# print(char+'00'+num)

# if 2 <= len(num) < 3:

# print(char+'0'+num)

# if 3 <= len(num) < 4:

# print(char+num)##

# stu_num = 'py1901'

# str1 = '0'

# num = input("請輸入學號後三位:")

# if int(num) < 100:

# stu_num = stu_num + num.zfill(3)

# else:

# stu_num = stu_num + num

# print(stu_num)

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

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

# a = 'anc2+93-sj胡說'

# list1 =

# for x in a:

# if x not in '0' <= x <= '9':

# elif 'a' <= x <= 'z' or 'a' <= x <= 'z':

# else:

# pass

# print(len(a) - len(list1))

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

# 例如: 輸入字串**'abc123'**, 輸出**'+bc12+'**

# str1 = 'abc123'

# str2 = ''

# for x in str1:

# if x == str1[0] or x == str1[-1]:

# str2 += '+'

# else:

# str2 += x

# print(str2)

# 10.輸入字串,獲取字串的中間字元

# 例如: 輸入**'abc1234'** 輸出:**'1'** 輸入**'abc123'** 輸出**'c1'**

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

# a = len(str1)

# if a % 2 == 0:

# print(str1[int((a-1) / 2)], str1[int(a / 2)])

# else:

# print(str1[int(a / 2)])

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

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

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

str2 = 'you'

count = 0

for x in str1:

for y in str2:

if x == y:

pass

print(len(y))

# print(len(str1))

# print(len(str2))

# 12.獲取兩個字串中公共的字元

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

# str1 = 'abc123'

# str2 = 'huaak3'

# str3 = ''

# for x in str1:

# if x in str2:

# str3 += x

# print(str3)

字串作業

5 10x 5 13 y 1 a b x 9 5 x 12 x y 輸入月薪 num input input salary per month salary int num 12 print salary 複製100遍 a 愛你100遍 b a 100print b 到這輸出字串 a to be o...

字串作業

輸入乙個字串,列印所有奇數字上的字元 下標是1,3,5,7 位上的字元 例如 輸入 abcd1234 輸出 bd24 str input 請輸入乙個字串 x 0while x len str if x 2 0 print str x x 1輸入使用者名稱,判斷使用者名稱是否合法,使用者名稱的要求 長...

ACM 字串作業整理

a b c kmp的模板題,注意資料範圍 d 利用next陣列求迴圈節,可以注意到最大迴圈節的長度len為n next n 如果n len為0,則不用新增額外的字元,否則需要新增len n len 個字元 具體 與思路描述有差異,這與打法有關。e manacher的變形,只需要在更新回文串長度的時候...