String 18. Дана строка. Преобразовать в ней все строчные буквы (как латинские, так и русские) в прописные, а прописные — в строчные.

Решение на Python 3

# -*- coding: utf-8 -*-
import random
import string

ru_letters = u"абвгдежзийклмнопрстуфхцчшщъыьэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
en_letters = u"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
tj_letters = u"ғӣқӯҳҷҒӢҚӮҲҶ"

ru_Lower = u"абвгдежзийклмнопрстуфхцчшщъыьэюя"
en_Lower = u"abcdefghijklmnopqrstuvwxyz"
ru_Upper = u"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
en_Upper = u"ABCDEFGHIJKLMNOPQRSTUVWXYZ"

N = random.randrange(1,10)
s_ru = random.sample(ru_letters, N)
print("RU:",s_ru)

N = random.randrange(1,10)
s_en = random.sample(en_letters, N)
print("EN:",s_en)

N = random.randrange(1,10)
s_tj = random.sample(tj_letters, N)
print("TJ:",s_tj)

N = random.randrange(1,10)
s_digit = random.sample(string.digits, N)
print("Digits:",s_digit)

s = s_ru + s_en + s_tj + s_digit + [' ',' ']
#print("Random:",s)
random.shuffle(s)
s = "".join(s)
print(s)

s_new = ""
for c in s:
if (c in en_Lower) or (c in ru_Lower):
c = c.upper()
elif (c in en_Upper) or (c in ru_Upper):
c = c.lower()
s_new += c
print(s_new)