1. 程式人生 > 其它 >python 習題100道

python 習題100道


'''
字串為 "hahaha_lalala_xixixi",如何得到佇列 ["hahaha","lalala","xixixi"]

split()就是將一個字串分裂成多個字串,並以列表的形式返回

語法:str.split(str="", num=string.count(str)),
引數:str -- 分隔符,預設為所有的空字元,包括空格、換行(\n)、製表符(\t)等;
num -- 分割次數。預設為 -1, 即分隔所有。換句話說,split()當不帶引數時以空格進行分割,當代引數時,以該引數進行分割

'''
str = "hahaha_lalala_xixixi"
str_end = str.split('_')
# print(str_end) # ['hahaha', 'lalala', 'xixixi']


'''
2、 有個列表 [“hello”, “world”, “yoyo”]如何把把列表⾥⾯的字串聯起來,得到字串 “hello_world_yoyo”
join() 方法用於將序列中的元素以指定的字元連線生成一個新的字串
str.join(sequence)
'''

list = ["hello", "world", "yoyo"]
str ='_'
list1= str.join(list)
print('第2題---',list1) # hello_world_yoyo

'''
這邊如果不依賴python提供的join⽅法,我們還可以通過for迴圈,然後將字串拼接,但是在⽤"+"連線字串時,結果會⽣成新的物件,
⽤join時結果只是將原列表中的元素拼接起來,所以join效率⽐較⾼
'''

# 定義一個空字串
j =""
# 通過for迴圈列印列表中資料
for i in list:
print(i)
j=j+"_"+i

print(j)
# for 迴圈得到的是 _hello_world_yoyo,前⾯會多⼀個下劃線,所以我們下⾯把這個下劃線去掉
'''
lstrip() 方法用於截掉字串左邊的空格或指定字元
str.lstrip([chars])

chars --指定擷取的字元。
'''
j = j.lstrip('_')
print('第2題---'+ j) #hello_world_yoyo


'''
3、把字串 s 中的每個空格替換成”%20”
輸⼊:s = “We are happy.”
輸出:”We%20are%20happy.”

replace() 方法把字串中的 old(舊字串) 替換成 new(新字串),如果指定第三個引數max,則替換不超過 max 次。
str.replace(old, new[, max])
old -- 將被替換的子字串。
new -- 新字串,用於替換old子字串。
max -- 可選字串, 替換不超過 max 次
'''
s = "We are happy"
new_s = s.replace(' ','%20')
print('第3題---',new_s) # 第3題--- We%20are%20happy

# 4、列印99乘法表
# for 實現
for i in range(1,10):
for j in range(1,i+1):
print('{}x{}={}\t'.format(j,i,i*j),end='')
print()
print('下面是while來實現')
# while 實現
i=1
while i<=9:
j=1
while j<=i:
print("%d*%d=%-2d" % (i, j, i * j), end=' ') # %d 整數的佔位符,-2表示靠左對齊,兩個佔位符
j+=1
print()
i+=1

 

 



'''

找出單詞 “welcome” 在 字串”Hello, welcome to my world.” 中出現的位置,找不到返回-1

find() 方法檢測字串中是否包含子字串 str ,如果指定 beg(開始) 和 end(結束) 範圍,則檢查是否包含在指定範圍內,如果指定範圍內如果包含指定索引值,返回的是索引值在字串中的起始位置。
如果不包含索引值,返回-1。
str.find(str, beg=0, end=len(string))
str -- 指定檢索的字串
beg -- 開始索引,預設為0。
end -- 結束索引,預設為字串的長度。
'''
def test():
message = "Hello, welcome to my world."
world ='welcome'
if world in message:
return message.find(world)
else:
return -1

# 6、統計字串“Hello, welcome to my world.” 中字母w出現的次數,

def test1():
message = 'Hello, welcome to my world.'
# 計數
num =0
# 迴圈message
for i in message:
if 'w' in i:
num+=1
return num

'''
字串“Hello, welcome to my world.”,統計計單詞 my 出現的次數

replace 與split 組合使用 split()就是將一個字串分裂成多個字串,並以列表的形式返回
'''
str ="Hello, welcome to my world. my"
str1 = str.replace(',','') # Hello welcome to my world.
str2 = str1.split()


for i in str2:
if i=='my':
count = str2.count(i)

print(i, '出現次數:', count) # my 出現次數: 2

'''
7、 輸⼊⼀個字串str, 輸出第m個只出現過n次的字元,如在字串 gbgkkdehh 中,找出第2個只出現1 次的字元,輸出結果:d

'''
def test3(str_test,num,counts):
'''

:param str_test: 字串
:param num: 字串出現的次數
:param counts: 字串第幾次出現的次數
:return:
'''

#定義一個空陣列,存放邏輯處理後的資料
list =[]
# for 迴圈字串的資料
for i in str_test:
#使用count函式,統計出所有字串出現的次數
count = str_test.count(i,0,len(str_test))

# 判斷字母在字串中出現的次數與設定的counts的次數相同,則將資料存放在list陣列中
if count ==num:
list.append(i)
# 返回第n次出現的字串
return list[counts-1]
#呼叫test3('gbgkkdehh',1,2) 得出d

'''
8、判斷字串a=”welcome to my world” 是否包含單詞b=”world” 包含返回True,不包含返回 False

'''
def test4():
message = "welcome to my world"
world ="world"
if world in message:
return True
return False


'''
輸出指定字串A在字串B中第⼀次出現的位置,如果B中不包含A,則輸出-1
從 0 開始計數
A = “hello”
B = “hi how are you hello world, hello yoyo !

'''

def test5():
message='hi how are you hello world, hello yoyo !'
world = 'hello'
if world in message:
return message.find(world)
else:
return -1


'''
輸出指定字串A在字串B中最後出現的位置,如果B中不包含A, 出-1從 0 開始計數
A = “hello”
B = “hi how are you hello world, hello yoyo !”

'''
def test6(string,str):

# 定義last_position 初始值為-1
last_position =-1
while True:
position=string.find(str,last_position+1)
if position ==-1:
return last_position
last_position=position
# print(test6('hi how are you hello world, hello yoyo !','hello'))

'''
給定⼀個數a,判斷⼀個數字是否為奇數或偶數
a1 = 13
a2 = 10

'''

while True:
try:
# 判斷輸入是否為整數
num = int(input('輸入一個整數: '))
# 不是純數字需要重新輸入
except ValueError:
print("輸入的不是整數!")
continue
if num %2==0:
print('偶數')
else:
print('奇數')
break

'''
輸⼊⼀個姓名,判斷是否姓王
a = “王五”
b = “⽼王”

'''
def test7():
user_input = input('請輸入您的姓名:')

if user_input[0] =='王':
return '使用者姓王'
else:
return '使用者不姓王'

'''
如何判斷⼀個字串是不是純數字組成
a = “123456”
b = “yoyo123”

'''
def test8(num):

try:
return float(num)

except ValueError:

return '請輸入數字'

'''
將字串 a = “This is string example….wow!” 全部轉成⼤寫
字串 b = “Welcome To My World” 全部轉成⼩寫

'''
a = 'This is string example….wow!'
b = 'Welcome To My World'
print(a.upper())
print(b.lower())

'''
將字串 a = “ welcome to my world “⾸尾空格去掉
python提供了strip()⽅法,可以去除⾸尾空格
rstrip()去掉尾部空格
lstrip()去掉⾸部空格
replace(" ", “”) 去掉全部空格

'''
a = 'welcome to my world '
print(a.strip())

# 還可以通過遞迴的⽅式實現

def trim(s):
flag =0
if s[:1] =='':
s=s[1:]
flag =1
if s[-1:] == '':
s=s[:-1]
flag =1
if flag ==1:
return trim(s)
else:
return s

'''
s = “ajldjlajfdljfddd”,去重並從⼩到⼤排序輸出”adfjl”

'''
def test9():
s ='ajldjlajfdljfddd'
# 定義一個數組存放資料
str_list =[]
# for 迴圈s字串中的資料,然後將資料加入陣列中
for i in s:

if i in str_list:
str_list.remove(i)
str_list.append(i)

# 使用sorted 方法 對字母進行排序
a = sorted(str_list)
# sorted 方法返回的是一個列表 這邊將列表資料轉換成字串

return ''.join(a)

 

 


def test10():
'''

abs() 函式返回數字的絕對值
'''
n =8
for i in range(-int(n/2),int(n/2)+1): # -4 -3 -2 -1 0 1 2 3 4


print( " " * abs(i) ,"*" * abs(n - abs(i) * 2))






原文可看:https://wenku.baidu.com/view/ac330c626aeae009581b6bd97f1922791688be34