Cố gắng tạo một hàm đơn giản sẽ lấy một cụm từ, một chữ cái và sau đó xuất cụm từ gốc bằng chữ cái đó bị xóa. Tôi có thể thực hiện phiên bản đơn giản nhưng dường như có được dây của tôi khi tôi cố gắng che cả chữ thường và chữ hoa. [nó hoạt động tốt nếu tôi chỉ làm 'nếu tôi không ở trong achar]
tức là nếu tôi nhập 'bảng thương mại' và thư của tôi để trích xuất là 'O', tôi muốn cả chữ hoa và chữ thường bị xóa. Tôi là người mới bắt đầu nên bất kỳ lời khuyên chung nào liên quan đến mã của tôi cũng sẽ được đánh giá cao.
Đây là kịch bản của tôi:
def removal[statement,aChar]:
newstring = ''
lowercase = aChar.lower[]
uppercase = aChar.upper[]
for i in statement:
if i not in aChar or lowercase or uppercase:
newstring = newstring+i
print[newstring]
removal['Board of Trade', 'O']
Hỏi ngày 6 tháng 4 năm 2015 lúc 20:42Apr 6, 2015 at 20:42
DyciClubsaucespyclubsauceSpicyClubSauce
3,87810 Huy hiệu vàng36 Huy hiệu bạc62 Huy hiệu Đồng10 gold badges36 silver badges62 bronze badges
3
def removal[statement,aChar]:
newstring = ''
# look at each character in your statement
for i in statement:
# convert everything to lowercase and make sure they don't match
if i.lower[] != aChar.lower[]:
newstring = newstring + i
return newstring
Đã trả lời ngày 6 tháng 4 năm 2015 lúc 20:47Apr 6, 2015 at 20:47
John Dorianjohn DorianJohn Dorian
1.8241 Huy hiệu vàng19 Huy hiệu bạc29 Huy hiệu đồng1 gold badge19 silver badges29 bronze badges
1
.replace[]
sẽ làm cho chức năng của bạn dễ đọc hơn một chút.
Cũng có một sai lầm với điều này: i not in aChar or lowercase or uppercase
Tương đương với những gì bạn đã viết là
def removal[statement,aChar]:
newstring = ''
# look at each character in your statement
for i in statement:
# convert everything to lowercase and make sure they don't match
if i.lower[] != aChar.lower[]:
newstring = newstring + i
return newstring
0 .. Điều này luôn đúng.def removal[statement,aChar]:
lowercase = aChar.lower[]
uppercase = aChar.upper[]
newstring = statement.replace[lowercase, ''].replace[uppercase, '']
print[newstring]
removal['Board of OTrade', 'O']
Đã trả lời ngày 6 tháng 4 năm 2015 lúc 20:46Apr 6, 2015 at 20:46
2
Thay đổi điều kiện của bạn để kiểm tra nếu có một phần tử trong một điều không thể sử dụng được:
if i not in [aChar, lowercase, uppercase]: # you really don't need aChar
Đã trả lời ngày 6 tháng 4 năm 2015 lúc 20:46Apr 6, 2015 at 20:46
Thay đổi điều kiện của bạn để kiểm tra nếu có một phần tử trong một điều không thể sử dụng được:Malik Brahimi
Malik Brahimimalik Brahimi5 gold badges36 silver badges66 bronze badges
4
16.1k5 Huy hiệu vàng36 Huy hiệu bạc66 Huy hiệu Đồng
def removal[statement,aChar]:
newstring = ''
for i.lower[] in statement:
if i != aChar.lower[]
newstring += i
print[newstring]
Những gì bạn có thể làm là chuyển đổi vốn O thành chữ thường O. Tương tự như thế này:Apr 6, 2015 at 20:51
Đã trả lời ngày 6 tháng 4 năm 2015 lúc 20:51Bagel
Bagelbagel11 bronze badges
8211 huy hiệu đồng
import string
def myfunc[mystr, mychar]:
return [mystr.replace[mychar.lower[], ""]].replace[mychar.upper[], ""]
myfunc["This is test sentence", "t"]
Dưới đây là một chức năng đơn giản thay thế ký tự đã cho bằng một ký tự trống. Nó thay thế cả hai trường hợp trên và dưới của nhân vật đó. Nếu bạn chỉ muốn thay thế nhân vật được đưa ra một cách mù quáng, hãy sử dụng câu trả lời thứ hai:
def myfunc[mystr, mychar]:
return mystr.replace[mychar, ""]
Câu trả lời thứ hai [sử dụng ký tự được đưa ra một cách mù quáng]:Apr 6, 2015 at 21:23
Đã trả lời ngày 6 tháng 4 năm 2015 lúc 21:23gixxer
Gixxergixxer1 gold badge10 silver badges25 bronze badges
8041 Huy hiệu vàng10 Huy hiệu bạc25 Huy hiệu đồng
def delchar_ci[s, ch]:
return s.translate[None, ch.lower[] + ch.upper[]]
s = 'Board Of Trade'
print delchar_ci[s, 'o'] # 'Bard f Trade'
print delchar_ci[s, 'o'] == delchar_ci[s, 'O'] # True
Điều này có thể được thực hiện trong một dòng với
def removal[statement,aChar]:
newstring = ''
# look at each character in your statement
for i in statement:
# convert everything to lowercase and make sure they don't match
if i.lower[] != aChar.lower[]:
newstring = newstring + i
return newstring
1:Apr 6, 2015 at 21:29
Đã trả lời ngày 6 tháng 4 năm 2015 lúc 21:29Shashank
Shashankshashank5 gold badges36 silver badges61 bronze badges