Python как найти заглавную букву

My homework assignment is to «Write a program that reads a string from the user and creates a list of words from the input. Create two lists, one containing the words that contain at least one upper-case letter and one of the words that don’t contain any upper-case letters.
Use a single for loop to print out the words with upper-case letters in them, followed by the words with no upper-case letters in them, one word per line.»

What I know is not correct:

s= input("Enter your string: ")
words = sorted(s.strip().split())
for word in words:
    print (word)

Because it only sorts the sequence if the Capitol is in the first character. For this assignment a character could appear any where within a word.
Such as, 'tHis is a sTring'.

I was playing around with a solution that looked similar to this, just to see if I could get the words with CAPS out.. But it just wasn’t working:

s = input("Please enter a sentence: ")
while True:
    cap = 0
    s = s.strip().split()
    for c in s:
        if c in "ABCDEFGHIJKLMNOPQRSTUVWXYZ":
            print(c[:cap])
            cap += 1
    else:
        print("not the answer")
        break 

But a regular expression would probably do a better job than writing out the whole alphabet.

imxitiz's user avatar

imxitiz

3,9102 gold badges9 silver badges33 bronze badges

asked Jul 6, 2011 at 19:54

casper's user avatar

2

>>> w = 'AbcDefgHijkL'
>>> r = re.findall('([A-Z])', word)
>>> r
['A', 'D', 'H', 'L']

This can give you all letters in caps in a word…Just sharing the idea

>>> r = re.findall('([A-Z][a-z]+)', w)
>>> r
['Abc', 'Defg', 'Hijk']

Above will give you all words starting with Caps letter. Note: Last one not captured as it does not make a word but even that can be captured

>>> r = re.findall('([A-Z][a-z]*)', w)
>>> r
['Abc', 'Defg', 'Hijk', 'L']

This will return true if capital letter is found in the word:

>>> word = 'abcdD'
>>> bool(re.search('([A-Z])', word))

radtek's user avatar

radtek

33.8k11 gold badges143 silver badges110 bronze badges

answered Jan 25, 2017 at 6:22

Arindam Roychowdhury's user avatar

Hint: «Create two lists»

s= input("Enter your string: ")
withcap = []
without = []
for word in s.strip().split():
    # your turn

The way you are using the for .. else in is wrong — the else block is executed when there is no break from the loop. The logic you are trying to do looks like this

for c in s:
    if c.isupper():
        # s contains a capital letter
        # <do something>
        break # one such letter is enough
else: # we did't `break` out of the loop
    # therefore have no capital letter in s
    # <do something>

which you can also write much shorter with any

if any(c in "ABCDEFGHIJKLMNOPQRSTUVWXYZ" for c in s):
     # <do something>
else:
     # <do something>

Will Bergmann's user avatar

answered Jul 6, 2011 at 19:58

Jochen Ritzel's user avatar

Jochen RitzelJochen Ritzel

104k31 gold badges200 silver badges194 bronze badges

2

Sounds like regexs would be easier for the first part of the problem (a regex that just looks for [A-Z] should do the trick).

For the second part, I’d recommend using two lists, as that’s an easy way to print everything out in one for loop. Have one list of non_upper_words and one of upper_words.

So, the basic outline of the program would be:

  1. split the string into an array of words.
  2. for each word in array: if regex returns true, add to upper_words. Else: add to non_upper_words.
  3. print each word in the first array and then in the second.

I wrote this out in pseudo-code because it’s a programming assignment, so you should really write the actual code yourself. Hope it helps!

answered Jul 6, 2011 at 20:55

Eli's user avatar

EliEli

36.4k38 gold badges142 silver badges207 bronze badges

2

You can use isupper method for your purpose:

text = 'sssample Text with And without'

uppers = []
lowers = []

# Note that loop below could be modified to skip ,.-/; and etc if neccessary
for word in text.split():
    uppers.append(word) if word[0].isupper() else lowers.append(word)

EDITED: You can also use islower method the following way:

text = 'sssample Text with And without'

other = []
lowers = []

# Note that loop below could be modified to skip ,.-/; and etc if neccessary
for word in text.split():
    lowers.append(word) if word.islower() else other.append(word)

OR depends on what you really need you can take a look at istitle method:

titled = []
lowers = []

for word in text.split():
    titled.append(word) if word.istitle() else lower.append(word)

AND with simple if else statement:

titled = []
lowers = []

for word in text.split():       
    if word.istitle():
        titled.append(word) 
    else:
        lower.append(word)

answered Jul 6, 2011 at 20:21

Artsiom Rudzenka's user avatar

Artsiom RudzenkaArtsiom Rudzenka

27.7k4 gold badges33 silver badges51 bronze badges

2

You can use List Comprehensions to get all upper case characters and lower case characters.

def get_all_cap_lowercase_list(inputStr):
    cap_temp_list = [c for c in inputStr if c.isupper()]
    low_temp_list = [c for c in inputStr if c.islower()]
    print("List of Cap {0}  and List of Lower {1}".format(cap_temp_list,low_temp_list))
   
    upper_case_count = len(cap_temp_list)
    lower_case_count = len(low_temp_list)
    print("Count of Cap {0}  and Count of Lower {1}".format(upper_case_count,lower_case_count))

get_all_cap_lowercase_list("Hi This is demo Python program")

And The output is:

List of Cap [‘H’, ‘T’, ‘P’] and List of Lower [‘i’, ‘h’, ‘i’, ‘s’,
‘i’, ‘s’, ‘d’, ‘e’, ‘m’, ‘o’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’, ‘p’, ‘r’, ‘o’,
‘g’, ‘r’, ‘a’, ‘m’]

Count of Cap 3 and Count of Lower 22

imxitiz's user avatar

imxitiz

3,9102 gold badges9 silver badges33 bronze badges

answered Jul 31, 2017 at 10:32

Rohit Shelhalkar's user avatar

Try doing the following:

  1. Split the string into a list where each item is a separate word.
  2. For every word in that list, iterate through and check for capital letters (consider the string constants such as string.uppercase). If it has a capital letter, insert it onto the front of your result list. If not, append it to the end of your result list.
  3. Iterate through your results, printing them. Or, if you want to avoid iterating, join the items in the string using the newline character n.

answered Jul 6, 2011 at 20:06

thegrinner's user avatar

thegrinnerthegrinner

11.4k5 gold badges41 silver badges64 bronze badges

Thank you to everyone for your input and help, it was all very informative. Here is the answer that I finally submitted.

s = input("Please enter a sentence: ")
withcap = []
without = []
for word in s.split():
    if word.islower():
        without.append(word)
    else:
        withcap.append(word)

onelist = withcap + without

for word in onelist:
    print (word)

answered Jul 21, 2011 at 19:17

casper's user avatar

I think your answer might only be searching for words where the first letter is capitalized. To find words that contain a capital letter anywhere in the word, you’d have to enumerate over each letter in the word, like this:

uin = input("Enter your text: ")

##create lists to hold upper and lower case words
up_words = []
no_up_words = []

for i, word in enumerate(uin.strip().split()):
    if word.islower():
        no_up_words.append(word)
    else: 
        up_words.append(word)

print(up_words, no_up_words)

answered May 18, 2014 at 4:06

SummerEla's user avatar

SummerElaSummerEla

1,9033 gold badges25 silver badges43 bronze badges

My regex:

vendor  = "MyNameIsJoe. IWorkInDDFinc."
ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor)

I need split word that would have happened:
My Name Is Joe. I Work In DDF inc.

answered Feb 16, 2017 at 13:27

I have a string like this

>>> x="Alpha_beta_Gamma"
>>> words = [y for y in x.split('_')]
>>> words
['Alpha', 'beta', 'Gamma']

I want output saying X is non conformant as the the second element of the list words starts with a lower case and if the string x = "Alpha_Beta_Gamma" then it should print string is conformant

SilentGhost's user avatar

SilentGhost

305k66 gold badges305 silver badges292 bronze badges

asked Sep 8, 2010 at 14:50

lisa's user avatar

4

To test that all words start with an upper case use this:

print all(word[0].isupper() for word in words)

answered Sep 8, 2010 at 14:55

Cristian Ciupitu's user avatar

Cristian CiupituCristian Ciupitu

20k7 gold badges50 silver badges75 bronze badges

6

Maybe you want str.istitle

>>> help(str.istitle)
Help on method_descriptor:

istitle(...)
    S.istitle() -> bool

    Return True if S is a titlecased string and there is at least one
    character in S, i.e. uppercase characters may only follow uncased
    characters and lowercase characters only cased ones. Return False
    otherwise.

>>> "Alpha_beta_Gamma".istitle()
False
>>> "Alpha_Beta_Gamma".istitle()
True
>>> "Alpha_Beta_GAmma".istitle()
False

Cristian Ciupitu's user avatar

answered Sep 8, 2010 at 15:00

Jochen Ritzel's user avatar

Jochen RitzelJochen Ritzel

104k31 gold badges200 silver badges194 bronze badges

2

x="Alpha_beta_Gamma"
is_uppercase_letter = True in map(lambda l: l.isupper(), x)
print is_uppercase_letter
>>>>True

So you can write it in 1 string

answered Apr 1, 2015 at 14:05

mihoff's user avatar

mihoffmihoff

591 silver badge1 bronze badge

2

words = x.split("_")
for word in words:
    if word[0] == word[0].upper() and word[1:] == word[1:].lower():
        print word, "is conformant"
    else:
        print word, "is non conformant"

answered Sep 8, 2010 at 14:56

inspectorG4dget's user avatar

inspectorG4dgetinspectorG4dget

109k27 gold badges147 silver badges238 bronze badges

4

You can use this regex:

^[A-Z][a-z]*(?:_[A-Z][a-z]*)*$

Sample code:

import re

strings = ["Alpha_beta_Gamma", "Alpha_Beta_Gamma"]
pattern = r'^[A-Z][a-z]*(?:_[A-Z][a-z]*)*$'

for s in strings:
    if re.match(pattern, s):
        print s + " conforms"
    else:
        print s + " doesn't conform"

As seen on codepad

answered Sep 8, 2010 at 14:53

NullUserException's user avatar

NullUserExceptionNullUserException

83.3k28 gold badges206 silver badges232 bronze badges

1

You can use this code:

def is_valid(string):
    words = string.split('_')
    for word in words:
        if not word.istitle():
            return False, word
    return True, words
x="Alpha_beta_Gamma"
assert is_valid(x)==(False,'beta')
x="Alpha_Beta_Gamma"
assert is_valid(x)==(True,['Alpha', 'Beta', 'Gamma'])

This way you know if is valid and what word is wrong

answered Sep 8, 2010 at 17:03

Rafael Sierra's user avatar

Rafael SierraRafael Sierra

4591 gold badge4 silver badges14 bronze badges

0

Use list(str) to break into chars then import string and use string.ascii_uppercase to compare against.

Check the string module:
http://docs.python.org/library/string.html

answered Oct 9, 2012 at 4:18

Drew Nichols's user avatar

Drew NicholsDrew Nichols

7051 gold badge6 silver badges13 bronze badges

Я начал вести список наиболее часто используемых функций, решая алгоритмические задачи на LeetCode и HackerRank.

Быть хорошим программистом — это не значит помнить все встроенные функции некоего языка. Но это не означает и того, что их запоминание — бесполезное дело. Особенно — если речь идёт о подготовке к собеседованию.

Хочу сегодня поделиться со всеми желающими моей шпаргалкой по работе со строками в Python. Я оформил её в виде списка вопросов, который использую для самопроверки. Хотя эти вопросы и не тянут на полноценные задачи, которые предлагаются на собеседованиях, их освоение поможет вам в решении реальных задач по программированию.

1. Как проверить два объекта на идентичность?

Оператор is возвращает True в том случае, если в две переменные записана ссылка на одну и ту же область памяти. Именно об этом идёт речь при разговоре об «идентичности объектов».

Не стоит путать is и ==. Оператор == проверяет лишь равенство объектов.

animals           = ['python','gopher']
more_animals      = animals
print(animals == more_animals) #=> True
print(animals is more_animals) #=> True
even_more_animals = ['python','gopher']
print(animals == even_more_animals) #=> True
print(animals is even_more_animals) #=> False

Обратите внимание на то, что animals и even_more_animals не идентичны, хотя и равны друг другу.

Кроме того, существует функция id(), которая возвращает идентификатор адреса памяти, связанного с именем переменной. При вызове этой функции для двух идентичных объектов будет выдан один и тот же идентификатор.

name = 'object'
id(name)
#=> 4408718312

2. Как проверить то, что каждое слово в строке начинается с заглавной буквы?

Существует строковый метод istitle(), который проверяет, начинается ли каждое слово в строке с заглавной буквы.

print( 'The Hilton'.istitle() ) #=> True
print( 'The dog'.istitle() ) #=> False
print( 'sticky rice'.istitle() ) #=> False

3. Как проверить строку на вхождение в неё другой строки?

Существует оператор in, который вернёт True в том случае, если строка содержит искомую подстроку.

print( 'plane' in 'The worlds fastest plane' ) #=> True
print( 'car' in 'The worlds fastest plane' ) #=> False

4. Как найти индекс первого вхождения подстроки в строку?

Есть два метода, возвращающих индекс первого вхождения подстроки в строку. Это — find() и index(). У каждого из них есть определённые особенности.

Метод find() возвращает -1 в том случае, если искомая подстрока в строке не найдена.

'The worlds fastest plane'.find('plane') #=> 19
'The worlds fastest plane'.find('car') #=> -1

Метод index() в подобной ситуации выбрасывает ошибку ValueError.

'The worlds fastest plane'.index('plane') #=> 19
'The worlds fastest plane'.index('car') #=> ValueError: substring not found

5. Как подсчитать количество символов в строке?

Функция len() возвращает длину строки.

len('The first president of the organization..') #=> 41

6. Как подсчитать то, сколько раз определённый символ встречается в строке?

Ответить на этот вопрос нам поможет метод count(), который возвращает количество вхождений в строку заданного символа.

'The first president of the organization..'.count('o') #=> 3

7. Как сделать первый символ строки заглавной буквой?

Для того чтобы это сделать, можно воспользоваться методом capitalize().

'florida dolphins'.capitalize() #=> 'Florida dolphins'

8. Что такое f-строки и как ими пользоваться?

В Python 3.6 появилась новая возможность — так называемые «f-строки». Их применение чрезвычайно упрощает интерполяцию строк. Использование f-строк напоминает применение метода format().

При объявлении f-строк перед открывающей кавычкой пишется буква f.

name = 'Chris'
food = 'creme brulee'
f'Hello. My name is {name} and I like {food}.'
#=> 'Hello. My name is Chris and I like creme brulee'

9. Как найти подстроку в заданной части строки?

Метод index() можно вызывать, передавая ему необязательные аргументы, представляющие индекс начального и конечного фрагмента строки, в пределах которых и нужно осуществлять поиск подстроки.

'the happiest person in the whole wide world.'.index('the',10,44)
#=> 23

Обратите внимание на то, что вышеприведённая конструкция возвращает 23, а не 0, как было бы, не ограничь мы поиск.

'the happiest person in the whole wide world.'.index('the')
#=> 0

10. Как вставить содержимое переменной в строку, воспользовавшись методом format()?

Метод format() позволяет добиваться результатов, сходных с теми, которые можно получить, применяя f-строки. Правда, я полагаю, что использовать format() не так удобно, так как все переменные приходится указывать в качестве аргументов format().

difficulty = 'easy'
thing = 'exam'
'That {} was {}!'.format(thing, difficulty)
#=> 'That exam was easy!'

11. Как узнать о том, что в строке содержатся только цифры?

Существует метод isnumeric(), который возвращает True в том случае, если все символы, входящие в строку, являются цифрами.

'80000'.isnumeric() #=> True

Используя этот метод, учитывайте то, что знаки препинания он цифрами не считает.

'1.0'.isnumeric() #=> False

12. Как разделить строку по заданному символу?

Здесь нам поможет метод split(), который разбивает строку по заданному символу или по нескольким символам.

'This is great'.split(' ')
#=> ['This', 'is', 'great']
'not--so--great'.split('--')
#=> ['not', 'so', 'great']

13. Как проверить строку на то, что она составлена только из строчных букв?

Метод islower() возвращает True только в том случае, если строка составлена исключительно из строчных букв.

'all lower case'.islower() #=> True
'not aLL lowercase'.islower() # False

14. Как проверить то, что строка начинается со строчной буквы?

Сделать это можно, вызвав вышеописанный метод islower() для первого символа строки.

'aPPLE'[0].islower() #=> True

15. Можно ли в Python прибавить целое число к строке?

В некоторых языках это возможно, но Python при попытке выполнения подобной операции будет выдана ошибка TypeError.

'Ten' + 10 #=> TypeError

16. Как «перевернуть» строку?

Для того чтобы «перевернуть» строку, её можно разбить, представив в виде списка символов, «перевернуть» список, и, объединив его элементы, сформировать новую строку.

''.join(reversed("hello world"))
#=> 'dlrow olleh'

17. Как объединить список строк в одну строку, элементы которой разделены дефисами?

Метод join() умеет объединять элементы списков в строки, разделяя отдельные строки с использованием заданного символа.

'-'.join(['a','b','c'])
#=> 'a-b-c'

18. Как узнать о том, что все символы строки входят в ASCII?

Метод isascii() возвращает True в том случае, если все символы, имеющиеся в строке, входят в ASCII.

print( 'Â'.isascii() ) #=> False
print( 'A'.isascii() ) #=> True

19. Как привести всю строку к верхнему или нижнему регистру?

Для решения этих задач можно воспользоваться методами upper() и lower(), которые, соответственно, приводят все символы строк к верхнему и нижнему регистрам.

sentence = 'The Cat in the Hat'
sentence.upper() #=> 'THE CAT IN THE HAT'
sentence.lower() #=> 'the cat in the hat'

20. Как преобразовать первый и последний символы строки к верхнему регистру?

Тут, как и в одном из предыдущих примеров, мы будем обращаться к символам строки по индексам. Строки в Python иммутабельны, поэтому мы будем заниматься сборкой новой строки на основе существующей.

animal = 'fish'
animal[0].upper() + animal[1:-1] + animal[-1].upper()
#=> 'FisH'

21. Как проверить строку на то, что она составлена только из прописных букв?

Имеется метод isupper(), который похож на уже рассмотренный islower(). Но isupper() возвращает True только в том случае, если вся строка состоит из прописных букв.

'Toronto'.isupper() #=> False
'TORONTO'.isupper() #= True

22. В какой ситуации вы воспользовались бы методом splitlines()?

Метод splitlines() разделяет строки по символам разрыва строки.

sentence = "It was a stormy nightnThe house creekednThe wind blew."
sentence.splitlines()
#=> ['It was a stormy night', 'The house creeked', 'The wind blew.']

23. Как получить срез строки?

Для получения среза строки используется синтаксическая конструкция следующего вида:

string[start_index:end_index:step]

Здесь step — это шаг, с которым будут возвращаться символы строки из диапазона start_index:end_index. Значение step, равное 3, указывает на то, что возвращён будет каждый третий символ.

string = 'I like to eat apples'
string[:6] #=> 'I like'
string[7:13] #=> 'to eat'
string[0:-1:2] #=> 'Ilk oetape' (каждый 2-й символ)

24. Как преобразовать целое число в строку?

Для преобразования числа в строку можно воспользоваться конструктором str().

str(5) #=> '5'

25. Как узнать о том, что строка содержит только алфавитные символы?

Метод isalpha() возвращает True в том случае, если все символы в строке являются буквами.

'One1'.isalpha() #=> False
'One'.isalpha() #=> True

26. Как в заданной строке заменить на что-либо все вхождения некоей подстроки?

Если обойтись без экспорта модуля, позволяющего работать с регулярными выражениями, то для решения этой задачи можно воспользоваться методом replace().

sentence = 'Sally sells sea shells by the sea shore'
sentence.replace('sea', 'mountain')
#=> 'Sally sells mountain shells by the mountain shore'

27. Как вернуть символ строки с минимальным ASCII-кодом?

Если взглянуть на ASCII-коды элементов, то окажется, например, что прописные буквы имеют меньшие коды, чем строчные. Функция min() возвращает символ строки, имеющий наименьший код.

min('strings') #=> 'g'

28. Как проверить строку на то, что в ней содержатся только алфавитно-цифровые символы?

В состав алфавитно-цифровых символов входят буквы и цифры. Для ответа на этот вопрос можно воспользоваться методом isalnum().

'Ten10'.isalnum() #=> True
'Ten10.'.isalnum() #=> False

29. Как удалить пробелы из начала строки (из её левой части), из её конца (из правой части), или с обеих сторон строки?

Здесь нам пригодятся, соответственно, методы lstrip(), rstrip() и strip().

string = '  string of whitespace    '
string.lstrip() #=> 'string of whitespace    '
string.rstrip() #=> '  string of whitespace'
string.strip() #=> 'string of whitespace'

30. Как проверить то, что строка начинается с заданной последовательности символов, или заканчивается заданной последовательностью символов?

Для ответа на этот вопрос можно прибегнуть, соответственно, к методам startswith() и endswith().

city = 'New York'
city.startswith('New') #=> True
city.endswith('N') #=> False

31. Как закодировать строку в ASCII?

Метод encode() позволяет кодировать строки с использованием заданной кодировки. По умолчанию используется кодировка utf-8. Если некий символ не может быть представлен с использованием заданной кодировки, будет выдана ошибка UnicodeEncodeError.

'Fresh Tuna'.encode('ascii')
#=> b'Fresh Tuna'
'Fresh Tuna Â'.encode('ascii')
#=> UnicodeEncodeError: 'ascii' codec can't encode character 'xc2' in position 11: ordinal not in range(128)

32. Как узнать о том, что строка включает в себя только пробелы?

Есть метод isspace(), который возвращает True только в том случае, если строка состоит исключительно из пробелов.

''.isspace() #=> False
' '.isspace() #=> True
'   '.isspace() #=> True
' the '.isspace() #=> False

33. Что случится, если умножить некую строку на 3?

Будет создана новая строка, представляющая собой исходную строку, повторённую три раза.

'dog' * 3
# 'dogdogdog'

34. Как привести к верхнему регистру первый символ каждого слова в строке?

Существует метод title(), приводящий к верхнему регистру первую букву каждого слова в строке.

'once upon a time'.title() #=> 'Once Upon A Time'

35. Как объединить две строки?

Для объединения строк можно воспользоваться оператором +.

'string one' + ' ' + 'string two' 
#=> 'string one string two'

36. Как пользоваться методом partition()?

Метод partition() разбивает строку по заданной подстроке. После этого результат возвращается в виде кортежа. При этом подстрока, по которой осуществлялась разбивка, тоже входит в кортеж.

sentence = "If you want to be a ninja"
print(sentence.partition(' want '))
#=> ('If you', ' want ', 'to be a ninja')

37. Строки в Python иммутабельны. Что это значит?

То, что строки иммутабельны, говорит о том, что после того, как создан объект строки, он не может быть изменён. При «модификации» строк исходные строки не меняются. Вместо этого в памяти создаются совершенно новые объекты. Доказать это можно, воспользовавшись функцией id().

proverb = 'Rise each day before the sun'
print( id(proverb) )
#=> 4441962336
proverb_two = 'Rise each day before the sun' + ' if its a weekday'
print( id(proverb_two) )
#=> 4442287440

При конкатенации 'Rise each day before the sun' и ' if its a weekday' в памяти создаётся новый объект, имеющий новый идентификатор. Если бы исходный объект менялся бы, тогда у объектов был бы один и тот же идентификатор.

38. Если объявить одну и ту же строку дважды (записав её в 2 разные переменные) — сколько объектов будет создано в памяти? 1 или 2?

В качестве примера подобной работы со строками можно привести такой фрагмент кода:

animal = 'dog'
pet = 'dog'

При таком подходе в памяти создаётся лишь один объект. Когда я столкнулся с этим в первый раз, мне это не показалось интуитивно понятным. Но этот механизм помогает Python экономить память при работе с длинными строками.

Доказать это можно, прибегнув к функции id().

animal = 'dog'
print( id(animal) )
#=> 4441985688
pet = 'dog'
print( id(pet) )
#=> 4441985688

39. Как пользоваться методами maketrans() и translate()?

Метод maketrans() позволяет описать отображение одних символов на другие, возвращая таблицу преобразования.

Метод translate() позволяет применить заданную таблицу для преобразования строки.

# создаём отображение
mapping = str.maketrans("abcs", "123S")
# преобразуем строку
"abc are the first three letters".translate(mapping)
#=> '123 1re the firSt three letterS'

Обратите внимание на то, что в строке произведена замена символов a, b, c и s, соответственно, на символы 1, 2, 3 и S.

40. Как убрать из строки гласные буквы?

Один из ответов на этот вопрос заключается в том, что символы строки перебирают, пользуясь механизмом List Comprehension. Символы проверяют, сравнивая с кортежем, содержащим гласные буквы. Если символ не входит в кортеж — он присоединяется к новой строке.

string = 'Hello 1 World 2'
vowels = ('a','e','i','o','u')
''.join([c for c in string if c not in vowels])
#=> 'Hll 1 Wrld 2'

41. В каких ситуациях пользуются методом rfind()?

Метод rfind() похож на метод find(), но он, в отличие от find(), просматривает строку не слева направо, а справа налево, возвращая индекс первого найденного вхождения искомой подстроки.

story = 'The price is right said Bob. The price is right.'
story.rfind('is')
#=> 39

Итоги

Я часто объясняю одному продакт-менеджеру, человеку в возрасте, что разработчики — это не словари, хранящие описания методов объектов. Но чем больше методов помнит разработчик — тем меньше ему придётся гуглить, и тем быстрее и приятнее ему будет работаться. Надеюсь, теперь вы без труда ответите на рассмотренные здесь вопросы.

Уважаемые читатели! Что, касающееся обработки строк в Python, вы посоветовали бы изучить тем, кто готовится к собеседованию?

Проверяет, что все символы строки находятся в верхнем регистре.

Синтаксис:

Параметры:

  • нет

Возвращаемое значение:

  • bool, True — если все слова имеют верхний регистр символов

Описание:

Метод str.isupper() возвращает True, если все символы в строке str прописные (имеют верхний регистр), при этом строка не должна быть пустой, то есть должна иметь хотя бы один символ в верхнем регистре и не состоять из одних пробелов.

Метод str.isupper() во всех других случаях возвращает False.

Строка состоящая из символов не имеющих возможности приведение к верхнему регистру также будет возвращать False.

Например выражение '379'.isupper() возвращает False.

Для приведения символов строки к верхнему регистру используйте метод str.upper().

Примеры проверки строки на верхний регистр.

>>> ''.isupper()
# False

>>> 'а'.isupper()
# False

>>> 'А'.isupper()
# True

>>> '20'.isupper()
# False

>>> 'Это 20'.isupper()
# False

>>> 'ЭТО 20'.isupper()
# True

>>> 'ВСЕ СИМВОЛЫ в СТРОКЕ ПРОПИСНЫЕ (ИМЕЮТ ВЕРХНИЙ РЕГИСТР)'.isupper()
# False

>>> 'ВСЕ СИМВОЛЫ В СТРОКЕ ПРОПИСНЫЕ (ИМЕЮТ ВЕРХНИЙ РЕГИСТР)'.isupper()
# True

Время чтения 1 мин.

Python string istitle() — это встроенная функция обработки строк, которая возвращает True, если первая буква слов, присутствующих в строке, является заглавной, а все остальные буквы слова — строчными. Во всех остальных случаях возвращает False.

Еще одним важным моментом является то, что символы и числа игнорируются при использовании метода istitle() для строки.

Содержание

  1. Синтаксис
  2. Параметры
  3. Возвращаемое значение
  4. Примеры программ с методом istitle()

Синтаксис

Здесь str — строковая переменная, которая должна быть проверена на наличие заглавного регистра.

Параметры

Метод istitle() не принимает никаких параметров и выдает ошибку при передаче любого параметра.

Возвращаемое значение

Функция istitle() возвращает значение true, если строка имеет заглавный регистр, и значение false во всех остальных случаях.

  • Пример 1: Напишите программу, демонстрирующую работу метода istitle() в Python.

# app.py

h1 = «Hello Boy»

h2 = «345Hello Girl»

h3 = «hello Boy»

h4 = «I Am A Barca Fan»

h5 = «I hate ReaL Madrid»

h6 = «The Above Two Strings Mean The Same»

print(«String: «, h1, «istitle: «, h1.istitle())

print(«String: «, h2, «istitle: «, h2.istitle())

print(«String: «, h3, «istitle: «, h3.istitle())

print(«String: «, h4, «istitle: «, h4.istitle())

print(«String: «, h5, «istitle: «, h5.istitle())

print(«String: «, h6, «istitle: «, h6.istitle())

Вывод:

python3 app.py

String:  Hello Boy istitle:  True

String:  345Hello Girl istitle:  True

String:  hello Boy istitle:  False

String:  I Am A Barca Fan istitle:  True

String:  I hate ReaL Madrid istitle:  False

String:  The Above Two Strings Mean The Same istitle:  True

  •  Пример 2. Напишите программу, которая проверяет, имеют ли две строки заглавные буквы. Если они есть, выведите «YES» и «NO» во всех остальных случаях.

См. следующий код.

# app.py

h1 = «I Am The King»

h2 = «I Love Maths»

if(h1.istitle() and h2.istitle()):

    print(«YES»)

else:

    print(«NO»)

Вывод:

Автор статей и разработчик, делюсь знаниями.

Понравилась статья? Поделить с друзьями:
  • Как найти людей для продажи
  • Как найти дельта температуры формула
  • Как составить требование об экспертизе на товаров
  • Как найти переводчика с корейского
  • Как составить профиль должности компании