Python yalnız ilk hərfdən istifadə edir.

Mən bilirəm .Bir xəttin ilk hərfinin baş harfini böyükləşdirmək (), amma birinci xarakter bir tamsayıdırsa?

budur

 1bob 5sandy 

Bunun üçün

 1bob 5sandy 
118
13 сент. 13 sentyabr tarixində user1442957 tərəfindən təyin olundu 2012-09-13 18:54 '12 at 18:54 2012-09-13 18:54
@ 7 cavab

İlk karakter bir tamsayıysa ilk hərfdən istifadə olunmayacaqdır.

 >>> '2s'.capitalize() '2s' 

Funksiyalara ehtiyacınız varsa nömrələri ləğv edin, hər bir xarakterə nəzarət etmək üçün '2'.isdigit() istifadə edə bilərsiniz.

 >>> s = '123sa' >>> for i, c in enumerate(s): ... if not c.isdigit(): ... break ... >>> s[:i] + s[i:].capitalize() '123Sa' 
151
13 сент. Əli Əfşarın 13 Sentyabrda verdiyi cavabı 2012-09-13 18:56 '12 at 18:56 2012-09-13 18:56

Heç kim bu sözü deməmişdi:

 >>> 'bob'.title() 'Bob' >>> 'sandy'.title() 'Sandy' >>> '1bob'.title() '1Bob' >>> '1sandy'.title() '1Sandy' 

Ancaq bu da verəcək

border=0
 >>> '1bob sandy'.title() '1Bob Sandy' >>> '1JoeBob'.title() '1Joebob' 

yəni. yalnız ilk əlifba xarakterindən istifadə etmir. Lakin sonra 'joe Bob'.capitalize() == 'Joe bob' eyni problem var, ən azı bu 'joe Bob'.capitalize() == 'Joe bob' . 'joe Bob'.capitalize() == 'Joe bob' , buna görə meh.

161
13 сент. DSM tərəfindən verilmiş cavab 13 sentyabr 2012-09-13 19:18 '12 saat 19:18 'da 2012-09-13 19:18

Bu, @Anon cavabına bərabərdir ki, yenidən modulun ehtiyacını dəymədən, qalan simli kodunu dəyişməz saxlayır.

 def upperfirst(x): return x[0].upper() + x[1:] x = 'thisIsCamelCase' y = upperfirst(x) print(y) # Result: 'ThisIsCamelCase' # 

@ Xan qeyd edildiyi kimi, funksiya əlavə səhv yoxlanışından istifadə edə bilər (məsələn, x bir ardıcıllıqla yoxlanılır), baxmayaraq ki, texnika göstərmək üçün kənar vəziyyətləri silinmir)

26
26 авг. Cavab pinkwerks 26 avqust verilir . 2015-08-26 20:15 '15 saat 20:15 'də 2015-08-26 20:15

Burada ilk məktubu udmaq və bütün sonrakı məktubların vəziyyətini tərk edəcək bir liner var:

 import re key = 'wordsWithOtherUppercaseLetters' key = re.sub('([a-zA-Z])', lambda x: x.groups()[0].upper(), key, 1) print key 

Bu WordsWithOtherUppercaseLetters ilə WordsWithOtherUppercaseLetters

9
23 июля '14 в 0:26 2014-07-23 00:26 Cavab Anon tərəfindən 23 iyul '14 'də 0:26 2014-07-23 00:26 ' də verilir

Mən bununla gəldim:

 import re regex = re.compile("[A-Za-z]") # find a alpha str = "1st str" s = regex.search(str).group() # find the first alpha str = str.replace(s, s.upper(), 1) # replace only 1 instance print str 
0
13 сент. Cavab Prasanth 13 sep verilir . 2012-09-13 19:06 '12 at 7:06 pm 2012-09-13 19:06

Hər bir sözün ilk hərfini ( preceded by a digit əvəz edə bilərsiniz:

 re.sub(r'(\d\w)', lambda w: w.group().upper(), '1bob 5sandy') output: 1Bob 5Sandy 
0
16 нояб. Cavab Zety tərəfindən 16 noyabrda verilir. 2016-11-16 14:25 '16 'da saat 14:25 ' də 2016-11-16 14:25

Gördüyünüz kimi Chen Hou burada cavab verdi, simli paketi istifadə edə bilərsiniz:

 import string string.capwords("they're bill friends from the UK") >>>"They're Bill Friends From The Uk" 
0
11 апр. Facottons tərəfindən verilmiş cavab Apr 11 2017-04-11 16:01 '17 saat 16:01 'da 2017-04-11 16:01

əlaqəli digər suallar və ya bir sual