Advertisement
Guest User

3.69

a guest
Oct 15th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.23 KB | None | 0 0
  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(" и она не является знакочередующейся.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement