Найти - Пользователи
Полная версия: Помогите
Начало » Центр помощи » Помогите
1
mashamironova081999
Ввести с клавиатуры имя файла. Если расширение имени файла – htm, html или php, выдать сообщение «Это веб-страница!», иначе выдать сообщение «Что-то другое.»
Пример:
Введите имя файла:
C:\DOC\Сайт\index.html
Это веб-страница!
Пример:
Введите имя файла:
C:\Документы\Приказ.doc
Что-то другое.
marvellik
 data = input()
if data[data.rfind('.')+1:] in ('htm', 'html','php'):
    print('Это веб-страница!')
else:
    print('Что-то другое.')
mashamironova081999
marvellik
rfind('.')+1:
Подскажите пожалуйста что значит ‘,’+1
uf4JaiD5
Там небольшая ошибка, будет реагировать не только на имена ‘*.html’, но и на ‘html’.
mashamironova081999
Подскажите пожалуйста что значит ‘,’+1

 #
data = input()
i = data.rfind('.')
if i > -1 and data[i+1:] in ('htm', 'html','php'):
    print('Это веб-страница!')
else:
    print('Что-то другое.')

 data.rfind('.')
ищет справа налево в строке data строку ‘.’ (точку). Т.е. ту точку, которой отделяется расширение в имени файла. Если не найдёт, возвращает -1, если найдёт, возвращает её позицию.

 data[i+1:]
из строки data берётся кусок от i+1 (на i – точка, значит с i+1 начинается расширение) до конца строки.

 data[i+1:] in ('htm', 'html','php') 
проверка, не равен ли этот “кусок data” ‘htm’, ‘html’ или ‘php’.
marvellik
uf4JaiD5
Там небольшая ошибка, будет реагировать не только на имена ‘*.html’, но и на ‘html’.
это как ? пример можно?
 C:\DOC\Сайт\index.html.
Что-то другое.
>>> 
============= RESTART: C:\
html.
Что-то другое.
>>>
uf4JaiD5
А зачем “C:\”? Просто ‘html’, в текущем каталоге.

 >>> data = 'html'
>>> print(data[data.rfind('.')+1:])
html
-1 +1 равно 0 же.
marvellik
uf4JaiD5
из задания
mashamironova081999
Ввести с клавиатуры имя файла. Если расширение имени файла
html не имеет расширения. можно проверять имеет ли файл кроме имени расширение или нет
мы же сравниваем расширения файла без точки
 >>> data = 'C:\DOC\Сайт\index.html'
>>> print(data[data.rfind('.'):])
.html
>>> print(data[data.rfind('.')+1:])
html
когда нет точки в тексте то вывод как у вас
 >>> data = 'html'
>>> print(data[data.rfind('.')+1:])
html
>>> data = 'html.'
>>> print(data[data.rfind('.')+1:])
>>>
uf4JaiD5
marvellik
html не имеет расширения.
Ну это же корректное имя файла.
marvellik
можно проверять имеет ли файл кроме имени расширение или нет
i>-1
marvellik
uf4JaiD5
да я согласен со всем. пусть дальше автор думает как и что проверять. . основное ему подсказали а захочет может и регулярками продолжить
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB