08字串作業

2021-10-12 07:45:58 字數 4523 閱讀 4502

# -*- coding = utf-8 -*-

# @time: 2020/12/17 9:29

# author: ykl

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

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

str1 =

'abcd1234 '

for x in

range

(len

(str1)):

if x &1:

print

(str1[x]

,end='')

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

user_name =

input

('請輸入使用者名稱1:')if

6<=

len(user_name)

<=10:

print

('輸入合法'

)else

:print

('輸入不合法,使用者名稱長度6~10位'

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

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

user_name =

input

('請輸入使用者名稱2:'

)for x in user_name:

if'z'

< x <

'a'or

'9'< x <

'a'or x <

'0'or x >

'z':

print

('輸入不合法,使用者名稱中只能由數字和字母組成'

)break

else

:print

('輸入合法'

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

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

user_name =

input

('請輸入使用者名稱3:'

)count =

1for x in user_name:

if count ==1:

if x <

'a'or x >

'z':

print

('輸入不合法,第乙個字元必須是大寫字母'

)break

if'z'

< x <

'a'or

'9'< x <

'a'or x <

'0'or x >

'z':

print

('輸入不合法,使用者名稱中只能由數字和字母組成'

)break

count +=

1else

:for x in

'0123456789'

:if x in user_name:

count =

true

break

else

:print

('使用者名稱中必須包含數字'

)if count ==

true

:print

('輸入合法'

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

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

str2 =

'abc1shj23kls99+2kkk'

new_str2 =

''for x in str2:

if'0'

<= x <=

'9':

new_str2 += x

print

(new_str2)

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

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

str3 =

'a2h2klm12+'

# upper方法

new_str3 = str3.upper(

)print

(new_str3)

# 自己的

for x in str3:

if'a'

<= x <=

'z':

str3 = str3.replace(x,

chr(

ord(x)-32

))print

(str3)

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

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

user_id =

input

('輸入乙個小於1000的數字:'

)str4 =

'py1901'

iflen

(user_id)==1

: result = str4 +

'00'

+ user_id

elif

len(user_id)==2

: result = str4 +

'0'+ user_id

else

: result = str4 + user_id

print

(result)

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

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

str5 =

'anc2+93-sj胡說'

count =

0for x in str5:

if'z'

< x <

'a'or

'9'< x <

'a'or x <

'0'or x >

'z':

count +=

1print

('非數字字母個數:'

, count)

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

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

str6 =

'abc123'

new_str6 = str6.replace(str6[0]

,'+'

)result = new_str6.replace(new_str6[-1

],'+')

print

(result)

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

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

str7 =

'abc1234'

iflen

(str7)&1

:print

(str7[

len(str7)//2

])else

:print

(str7[

len(str7)//2

-1], str7[

len(str7)//2

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

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

str8 =

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

find_str =

'you'

for x in

range

(len

(str8)):

if str8[x]

== find_str[0]

:for y in

range(1

,len

(find_str)):

if find_str[y]

!= str8[x+y]

:break

else

:print

(x)break

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

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

str9 =

'abc123'

str10 =

'huak3'

for x in str9:

if x in str10:

print

(x,end=

' ')

1 28字串作業

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

08字串轉換整數 atoi

參考文獻 實現乙個atoi函式,使其能將字串轉換成整數 example 輸入 42 輸出 42首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字...

Python學習之路08 字串

字串是不可變資料型別,建立後不可修改 只能新建乙個字串,用原來的標籤去覆蓋它 使用 或 建立字串 s1 i love you s1 i love you 使用 或 建立跨多行的字串 s2 從前車馬很慢 書信很長 一生只夠愛一人 s2 從前車馬很慢 n書信很長 n一生只夠愛一人 print s2 從前...