SHARE
TWEET

3.69

a guest Oct 15th, 2019 70 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Пользователь вводит десять целых чисел, представляющих собой элементы списка. Требуется его оценить:
  2. # - является ли список возрастающей последовательностью;
  3. # - есть ли в списке одинаковые элементы;
  4. # - является ли список знакочередующимся (положительные и отрицательные числа чередуются).
  5. import copy
  6.  
  7.  
  8. def inpAsStr():                                               # ввод в строку с разделением по пробелам
  9.     inp = input("введите 10 целых чисел, разделённых пробелами").split()
  10.     for i in range(len(inp)):
  11.         inp[i]=int(inp[i])
  12.     return(inp)
  13.  
  14.  
  15. def inpAsList():                                              # последовательный ввод элементов списка
  16.     inp = []
  17.     while len(inp)<10:
  18.         inp.append(int(input("введите целое число")))
  19.     return (inp)
  20.  
  21.  
  22. def isListRiseSort(arr):                                      # проверка на не-убывание, допускает
  23.     arrCopy = copy.copy(arr)                                  # два одинаковых элемента подряд. не
  24.     arrCopy.sort()                                            # использует циклов
  25.     if arr == arrCopy:
  26.         return(True)
  27.     else: return(False)
  28.  
  29.  
  30. def isListRiseFor(arr):                                        # обычная проверка на возрастание
  31.     for i in range(len(arr)-1):
  32.         if arr[i] >= arr[i+1]:
  33.             return(False)
  34.     else: return(True)
  35.  
  36.  
  37. def isThereRepeats(arr):                                       # в одну строку:? 10 54 12 64 34 54 12 57 14 65
  38.     if len(arr) != len(set(arr)): return(True)
  39.     else: return(False)
  40.  
  41.  
  42. def pos(n):                                                    # вернуть True если число не отриц или 0
  43.     if n < 0 or n == 0: return(False)
  44.     else: return(True)
  45.  
  46.  
  47. def isListAlternating(arr):                                    # поиск идущих подряд чисел с одинаковым
  48.     for i in range(len(arr)-1):                                # знаком - отсутствие чередования
  49.         if pos(arr[i]) == pos(arr[i+1]):
  50.             return(False)
  51.     else: return(True)
  52.  
  53.  
  54.  
  55. arr = inpAsStr()
  56. if len(arr)!=10:
  57. if isListRiseFor(arr):
  58.     print("Введённая последовательность является возрстающей", sep="", end="")
  59. else: print("введённая последовательность не является возрстающей", sep="",end = "")
  60. if isThereRepeats(arr):
  61.     print(", в ней есть одинаковые элементы", sep="", end="")
  62. else: print(", в ней нет одинаковых элементов", sep="", end="")
  63. if isListAlternating(arr):
  64.     print(" и она является знакочередующейся.")
  65. else: print(" и она не является знакочередующейся.")
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top