Перейти к содержанию
На чтение 1 мин Просмотров 3.6к. Опубликовано 26 октября, 2021 Обновлено 26 октября, 2021
Содержание
- Что нужно сделать
- Что оценивается
- Решение:
Что нужно сделать
Вы участвуете в разработке приложения для математиков, где можно будет делать всё, начиная от простейших вычислений и заканчивая построением сложных графиков. В этом приложении реализована установка диапазона чисел, и вам необходимо написать этакую «защиту от дурака».
Напишите программу, которая получает на вход число и проверяет, двузначное оно или нет. Выведите соответствующее сообщение. Числа −42 и −99 тоже считаются двузначными. Сделайте это, используя не более одного оператора if-elsе. Не используйте elif.
Что оценивается
- результат вычислений корректен, поддерживаются отрицательные числа;
- задача решена без использования строк и операций с ними (конечно, это не относится к приведению целых чисел);
- input содержит корректное приглашение для ввода;
- переменные имеют значащие имена, не только a, b, c, d (видео 2.3);
- правильное употребление пробелов после запятых, при бинарных и логических операциях.
Решение:
num = int(input('Введите число: '))
if (num >= 10) and (num <= 99) or (num <= -10) and (num > -100):
print('Число двузначное')
else:
print('Число не двузначное')
( 8 оценок, среднее 4.5 из 5 )
У меня проходит анализ чисел, то есть оно выводит все числа и прописывает удовлетворяют они условию или нет, а как сделать так, чтобы программа выводила только двузначные числа?
from random import randint
n = int(input(“Введите кол-во чисел в массиве “))
a = [0]*n
k = 0
for i in range (0, n):
a[i]=randint (-1000, 1000)
print(a[i])
for i in a:
print(“двузначные числа “, 9 < i < 100 or -100 < i < -9)
выводит:
Введите количество цифр 5
930
832
750
809
66
двузначные числа False
двузначные числа False
двузначные числа False
двузначные числа False
двузначные числа True
lst = []
lst2 = []
with open('some.txt') as a:
for i in a.readline():
try:
int(i)
lst.append(i)
except:
lst2.append(i)
print(lst)
print(lst2)
В файле находится строчка наподобие:
o4b8y9q16l6r1n1t20o13p2o18h14i4j2u20l8c14e5j16l11
Как выделить двухзначные числа и добавить их в словарь?
задан 22 авг 2018 в 14:03
3
import re
result = re.findall(r'(d{2,})', 'o4b8y9q16l6r1n1t20o13p2o18h14i4j2u20l8c14e5j16l11')
print(result)
2 вариант(только 2 символа):
a = 'o4b8y9q16l6r1n1t20o13p2o18h14i4j2u20l8c14e5j16l11'
[x+z for x, z in zip(a, a[1:]) if x.isdigit() and z.isdigit()]
ответ дан 22 авг 2018 в 14:10
floydyafloydya
1,9231 золотой знак7 серебряных знаков13 бронзовых знаков
string_ = 'o4b8y9q16l6r1n1t20o13p2o18h14i4j2u20l8c14e5j16l11' # Запишите содержимое txt файла в переменную
temp = '' # Временное хранилище для чисел
numbers = [] # Список с подходящими числами
for i in string_:
global temp, numbers
if i.isdigit():
temp += i
if len(temp) == 2:
numbers.append(int(temp))
temp = ''
else:
temp = ''
print(numbers) # [16, 20, 13, 18, 14, 20, 14, 16, 11]
ответ дан 22 авг 2018 в 14:30
Don2QuixoteDon2Quixote
1,6853 золотых знака12 серебряных знаков25 бронзовых знаков
In:
import re
file = 'blablabla1blablabla23lbabla4ff03q2'
x = re.findall('(d+)', file)
for i in x:
if len(i) < 2:
x.remove(i)
Out:
['23', '03']
Конечно наверное надо предусмотреть возможность нахождения чисел типа '00004'
. Но это вы сами сможете сделать надеюсь.
ответ дан 22 авг 2018 в 18:21
sevnightsevnight
5821 золотой знак5 серебряных знаков25 бронзовых знаков
I have a piece of code that records times in this format:
0.0-8.0
0.0-9.0
0.0-10.0
I want to use a regular expression that will find all of these strings and have checked here and here for help but am still confused. I understand how to do it if I only wanted to do single digit numbers, but I can’t figure out how to handle double digit numbers like 10 or 20.
It is also important that the expression does not find the string
0.0-1.0
as it should be ignored.
So far my expression looks like this:
expression = re.compile(',0.0-[0-2][0-9])
asked Aug 27, 2015 at 15:10
2
If you want to match each line shown in your question, try an expression like this:
0.0-[0-2]?d.d
d
is the same as [0-9]
. The ?
means 0 or 1 occurrences, so this will only match 1- or 2-digit numbers. If you need the comma at the start of the regex, add that in.
If you want to exclude 0.0-1.0
, then you should do that in code, not in the regular expression, since that would make it less readable. But if you insist, I have included one that will exclude that string for you:
Try it here
0.0-[0-2]?[0-9].(?<!0-1.)d
This uses a negative lookbehind to ensure the previous part is not 0-1.
, which would only occur in the match you didn’t want.
answered Aug 27, 2015 at 15:16
mbomb007mbomb007
3,7422 gold badges39 silver badges67 bronze badges
При помощи операции нахождения остатка и целочисленного деления можно достаточно несложно вычислить любую цифру числа.
Рассмотрим программу получения цифр двузначного числа:
num = 17
a = num % 10
b = num // 10
print(a)
print(b)
Результатом выполнения программы будут два числа:
7
1
То есть сначала мы вывели последнюю цифру числа, а затем первую цифру.
Запомни: последняя цифра числа определяется всегда как остаток от деления числа на 10 (% 10)
. Чтобы отщепить последнюю цифру от числа, необходимо разделить его нацело на 10 (// 10)
.
Рассмотрим программу получения цифр трёхзначного числа:
num = 754
a = num % 10
b = (num % 100) // 10
c = num // 100
print(a)
print(b)
print(c)
Результатом выполнения программы будут три числа:
4
5
7
То есть сначала мы вывели последнюю цифру числа, затем среднюю цифру, а затем первую цифру.
Алгоритм получения цифр n-значного числа
Несложно понять, по какому алгоритму можно найти каждую цифру n-значного числа num
:
- Последняя цифра:
(num % 101) // 100
; - Предпоследняя цифра:
(num % 102) // 101
; - Предпредпоследняя цифра:
(num % 103) // 102
; - …..
- Вторая цифра:
(num % 10n-1) // 10n-2
; - Первая цифра:
(num % 10n) // 10n-1
.
Решение задач
Задача 1. Напишите программу, определяющую число десятков и единиц в двузначном числе.
Решение. Число единиц – это последняя цифра числа, число десятков – первая цифра. Чтобы получить последнюю цифру любого числа, нужно найти остаток от деления числа на 10. Чтобы найти первую цифру двузначного числа, нужно поделить число нацело на 10. Программа, решающая поставленную задачу, может иметь следующий вид:
num = int(input())
last_digit = num % 10
first_digit = num // 10
print('Число десятков =', first_digit)
print('Число единиц =', last_digit)
Задача 2. Напишите программу, в которой рассчитывается сумма цифр двузначного числа.
Решение. Программа, решающая поставленную задачу, может иметь следующий вид:
num = int(input())
last_digit = num % 10
first_digit = num // 10
print('Сумма цифр =', last_digit + first_digit)
Задача 3. Напишите программу, которая печатает число, образованное при перестановке цифр двузначного числа.
Решение. Программа, решающая поставленную задачу, может иметь следующий вид:
num = int(input())
last_digit = num % 10
first_digit = num // 10
print('Искомое число =', last_digit * 10 + first_digit)
Задача 4. Напишите программу, в которую вводится трёхзначное число и которая выводит на экран его цифры (через запятую).
Решение. Программа, решающая поставленную задачу, может иметь следующий вид:
num = int(input())
digit3 = num % 10
digit2 = (num // 10) % 10
digit1 = num // 100
print(digit1, digit2, digit3, sep=',')