Python üçtərəfli şərti operatoru varmı?

Pythonun üçtərəfli şərtli operatoru yoxdursa, digər dil quruluşlarından istifadə edərək onu təqlid etmək mümkündürmü?

4906
27 дек. Dekabrın 27-nə bənzər . 2008-12-27 11:32 '08 at 11:32 2008-12-27 11:32
@ 27 cavab

Bəli, bu versiya 2.5 əlavə edilmişdir. İfadə sintaksisi:

 a if condition else b 

condition əvvəlcə qiymətləndirilir, onda a və ya b tam biri hesablanır və condition əsasən geri qaytarılır. condition True olaraq qiymətləndirilirsə, onda a qiymətləndirilir və geri qaytarılır, lakin b baxsandır, ya da b hesablanır və qaytarıldığında, an a e'tibar edilmir.

Bu, qısa bir dövrəyə imkan verir, çünki condition doğru olduqda, yalnız a qiymətləndirilir və b edilmir və condition yalanandırsa, yalnız b qiymətləndirilir və a qiymətləndirilmir.

Məsələn:

 >>> 'true' if True else 'false' 'true' >>> 'true' if False else 'false' 'false' 

Şərti ifadələrin ifadələr deyil, ifadələr olduğunu unutmayın. Bu, şərtli ifadədə tapşırıq operatorlarından və ya digər operatorlardan istifadə edə bilməzsiniz:

 >>> pass if False else x = 3 File "<stdin>", line 1 pass if False else x = 3 ^ SyntaxError: invalid syntax 

Bu halda şərti ifadənin əvəzinə adi if istifadə etməlisiniz.


Bəzi Pythonistaslar bunun bir neçə səbəbdən razı olmadığını unutmayın:

  • Arqumentlərin əmri klassik condition? a: b fərqlənir condition? a: b condition? a: b Ternary operator condition? a: b condition? a: b Pythonun "gözəl" davranışları ilə tanış olmayan zaman istifadə etmək üçün səhvlərə yol aça biləcək condition? a: b çox digər dillərdən (C, C ++, Go, Perl, Ruby, Java, Javascript və s. onlar arqumentlərin sırasını dəyişə bilərlər).
  • Bəziləri "həssas" hesab edirlər, çünki bu, normal düşüncə axınına (ilk dövlət haqqında düşünmək, sonra isə nəticələrə) qarşı çıxır.
  • Stilistik səbəblər.

Sifarişi xatırlayırken probleminiz varsa, yüksək səslə oxuduğunuz zaman yadda saxlamağı unutmayın. Məsələn, x = 4 if b > 8 else 9 u yüksək səslə oxunduqda, x will be 4 if b is greater than 8 otherwise 9 .

Rəsmi sənədlər:

5815
27 дек. cavab 27 dekabrda Vinko Vrsaloviç tərəfindən verilir . 2008-12-27 11:44 '08 at 11:44 2008-12-27 11:44

Bir cütə endeksleyebilirsiniz:

 (falseValue, trueValue)[test] 

test doğru və ya yanlış dönməli olmalıdır.
Həmişə bunu yerinə yetirmək daha təhlükəsiz ola bilər:

border=0
 (falseValue, trueValue)[test == True] 

və ya Boolean dəyərini təmin etmək üçün daxili bool() istifadə edə bilərsiniz:

 (falseValue, trueValue)[bool(<expression>)] 
648
22 янв. Landon Kuhn tərəfindən 22 yanvarda verilən cavabı 2009-01-22 21:58 '09 at 9:58 pm 2009-01-22 21:58

2,5-ə qədər versiyalar üçün bir oyun var:

 [expression] and [on_true] or [on_false] 

on_true saxta məntiqi dəyər olduqda yanlış nəticələr verə bilər. 1
Mənim fikrimcə daha aydın olan ifadəni soldan sağa qiymətləndirmək məcburiyyətlidir.

<sub> 1. Cs "?:" üç ölçülü operator var?

267
27 дек. Cədvəl 27-də James Brady tərəfindən verilmiş cavab 2008-12-27 13:48 '08 at 13:48 pm 2008-12-27 13:48

ifadəsi1 başqa ifadə2 vəziyyətdədir

 >>> a = 1 >>> b = 2 >>> 1 if a > b else -1 -1 >>> 1 if a > b else -1 if a < b else 0 -1 
175
27 мая '10 в 10:56 2010-05-27 10:56 Simon Zimmermann tərəfindən 27 May '10' da 10:56 ' da cavab verilir. 2010-05-27 10:56

Sənədlərdən :

Şərti ifadələr (bəzən "üçlü operator" olaraq adlandırılır) bütün Python əməliyyatlarının ən aşağı prioritetinə malikdir.

x if C else y ifadəsinin x if C else y ifası x if C else y qiymətləndirir, x (x deyil) x; C düzgündürsə, x qiymətləndirilir və dəyəri geri qaytarılır; əks halda y hesablanır və dəyəri qaytarılır.

Şərti ifadələr haqqında ətraflı məlumat üçün PEP 308-a baxın.

Versiya 2.5-dən bəri yeni.

118
27 дек. Michael Burr tərəfindən verilmiş cavab 27 dekabr 2008-12-27 11:44 '08 at 11:44 2008-12-27 11:44

Python'daki şərti ifadə operatoru 2006-cı ildə Python Enhancement Təklifinin 308 hissəsi kimi əlavə edildi. Onun forması adi operatordan fərqlənir ?: Və bu:

 <expression1> if <condition> else <expression2> 

buna bərabərdir:

 if <condition>: <expression1> else: <expression2> 

Burada bir nümunə:

 result = x if a > b else y 

Siz istifadə edə biləcəyiniz digər bir sözdizim (2.5 versiyaya uyğun):

 result = (lambda:y, lambda:x)[a > b]() 

operandların ləkəsiz olaraq qiymətləndirildiyi yer .

Başqa bir yol isə (bir çox digər dildə şərtli operatora ziddir) tuple (indikatoru) indeksləşdirməkdir:

 result = (y, x)[a > b] 

və ya açıq şəkildə tərtib olunmuş bir lüğət:

 result = {True: x, False: y}[a > b] 

Digər (daha az etibarlı), lakin daha sadə bir üsul, və or operatorları istifadə etməkdir:

 result = (a > b) and x or y 

Bununla belə, əgər x False olsa, bu işləmir.

Olası bir çözüm aşağıda göstərildiyi kimi xy siyahıları və ya tupllər yaratmaqdır:

 result = ((a > b) and [x] or [y])[0] 

və ya

 result = ((a > b) and (x,) or (y,))[0] 

Əgər lüğətlər ilə işləsəniz, üçtərəfli şərti ifadə istifadə etmək əvəzinə, get(key, default) istifadə edə bilərsiniz, məsələn:

 shell = os.environ.get('SHELL', "/bin/sh") 

Mənbə: ?: Vikipediyada Python

90
05 мая '15 в 15:00 2015-05-05 15:00 cavab 05 may 2012- ci il saat 15: 00-da Kenorb tərəfindən verilir

@up:

Təəssüf ki

 (falseValue, trueValue)[test] 
Həll

qısa dövrə davranışı yoxdur; Beləliklə, həm də falseValue və trueValue şəraitdən asılı olaraq qiymətləndirilir. Bu, suboptimal və ya hətta səhv ola bilər (yəni, həm də trueValue və falseValue metodlar ola bilər və yan təsirləri ola bilər).

Bunun bir həlli olardı

 (lambda: falseValue, lambda: trueValue)[test]() 

(qələbə bilinənə qədər icra təxirə salınır)), ancaq çağırılan və qeyri-adi obyektlər arasında uyğunsuzluq yaradır. Bundan əlavə, xüsusiyyətləri istifadə edərkən problemi həll etmir.

Beləliklə, hekayə - sözügedən üç həlli arasında seçim - ən azı 2.5 python (IMHO artıq problem deyil) və "trueValue-estimate-to-false" mövzularına aid olmayan bir qısa dövrə funksiyası arasında bir ticarətdir.

85
06 дек. Cavab gorsky 06 dec tərəfindən verilir . 2009-12-06 14:51 '09 at 2:51 PM 2009-12-06 14:51

Python 2.5 və daha yeni üçün müəyyən bir sintaksis var:

 [on_true] if [cond] else [on_false] 

Köhnə Pythonlarda üçlü operator tətbiq edilmir, amma onu təqlid etmək mümkündür.

 cond and on_true or on_false 

cond , Trueon_true olaraq qiymətləndirildikdə, False olaraq qiymətləndirilən potensial bir problem olsa da on_true yerinə on_false qaytarılır. Bu üsulun yaxşı olmasını istəyirsənsə, əksinə bunu istifadə edin:

 {True: on_true, False: on_false}[cond is True] # is True, not == True 

bükülmüş ola bilər:

 def q(cond, on_true, on_false) return {True: on_true, False: on_false}[cond is True] 

və aşağıdakı kimi istifadə olunur:

 q(cond, on_true, on_false) 

Python'un bütün versiyaları ilə uyğun gəlir.

54
25 апр. Cavab Paolo 25 apr. 2012-04-25 14:40 '12 at 2:40 pm 2012-04-25 14:40

Müxtəlif proqramlaşdırma dillərində Ternary operator

Burada yalnız bir neçə proqramlaşdırma dilləri arasında bir ternary operator bir sıra əhəmiyyətli fərqlər göstərməyə çalışıram.

Javascriptda üçtərəfli operator

 var a = true ? 1 : 0; # 1 var b = false ? 1 : 0; # 0 

Yaqutda Trinity operatoru

 a = true ? 1 : 0 # 1 b = false ? 1 : 0 # 0 

Scala'daki Ternary Operator

 val a = true ? 1 | 0 # 1 val b = false ? 1 | 0 # 0 

R-proqramlaşdırma sahəsində üçtərəfli operator

 a <- if (TRUE) 1 else 0 # 1 b <- if (FALSE) 1 else 0 # 0 

Python-da Ternary operator

 a = 1 if True else 0 # 1 b = 1 if False else 0 # 0 
50
21 авг. cavab Simplans 21 aug tərəfindən verilir . 2016-08-21 20:56 '16 saat 20:56 'də 2016-08-21 20:56

Çox vaxt tapa bilərsiniz

 cond and on_true or on_false 

ancaq on_true == 0 olduğunda bu bir problemə gətirib çıxarır

 >>> x = 0 >>> print x == 0 and 0 or 1 1 >>> x = 1 >>> print x == 0 and 0 or 1 1 

normal nəticə verən bir operator üçün bu nəticə gözlədiyiniz yer

 >>> x = 0 >>> print 0 if x == 0 else 1 0 >>> x = 1 >>> print 0 if x == 0 else 1 1 
35
14 янв. Cavab 14 yanvarda Benoit Bertholon tərəfindən verilir . 2013-01-14 18:56 '13 at 18:56 2013-01-14 18:56

Əlbəttə ki, başa düşmək çox çətindir.

 general syntax : first_expression if bool_expression_is_true else second_expression Example: x= 3 if 3 > 2 else 4 # assigns 3 to x if the boolean expression evaluates to true or 4 if it is false 
30
15 июля '15 в 14:33 2015-07-15 14:33 Cavab BattleDrum'a 15 İyul, '15 'də 14:33' də verilir 2015-07-15 14:33

Python üçtərəfli şərti operatoru varmı?

Bəli Qrammatik fayldan :

 test: or_test ['if' or_test 'else' test] | lambdef 

Maraqların bir hissəsi:

 or_test ['if' or_test 'else' test] 

Beləliklə, üçtərəfli şərti əməliyyata aşağıdakı forma daxildir:

 expression1 if expression2 else expression3 

expression3 tənbəlliklə qiymətləndiriləcək (yəni, expression2 yalnız bir boolean kontekstdə səhv olduğunda qiymətləndiriləcəkdir). Və təkrarlanan tərifdən görə, onları sonsuz bir şəkildə bağlaya bilərsiniz (baxmayaraq ki, bu, pis tərz hesab edilə bilər.)

 expression1 if expression2 else expression3 if expression4 else expression5 # and so on 

İstifadə qaydası:

Qeyd edək ki, hər biri else bir təqib edir. Anlayışlar və generator ifadələrinin siyahısını öyrənən insanlar üçün öyrənmək üçün çətin bir dərs kimi görünə bilər - Python üçün üçüncü ifadəni başqa üçün gözlədiyindən aşağıdakılar işləməyəcəkdir:

 [expression1 if expression2 for element in iterable] # ^-- need an else here 

bir SyntaxError: invalid syntax artırır SyntaxError: invalid syntax . Beləliklə, yuxarıda göstərilənlər natamam məntiqdir (ehtimal ki, istifadəçi saxta deyil ki, op yalan deyil) və ya nəzərdə tutula bilən formada filter2 kimi istifadə edin - aşağıdakıları qanuni Python deyir:

 [expression1 for element in iterable if expression2] 

ifadə2 siyahı anlamaq üçün bir filtre kimi işləyir və üçtərəfli şərti operator deyil.

Dar bir vəziyyət üçün alternativ sintaksis:

Aşağıdakıları yazmaq üçün bir az ağrılı ola bilərsiniz:

 expression1 if expression1 else expression2 

expression1 yuxarıda göstərilən istifadə etməklə iki dəfə qiymətləndirilməlidir. Yalnız yerli bir dəyişkən olursa, artıqlıq məhdudlaşdırıla bilər. Lakin, bu istifadə üçün ümumi və sintaktik pythonic idiom kısaltması istifadə etmək or :

 expression1 or expression2 

semantikdə bərabərdir. Bəzi stil təlimatlar bu istifadəliyi aydınlıqla məhdudlaşdıra bilər - bu, həqiqətən, çox kiçik bir sözdizimə böyük əhəmiyyət verir.

26
17 нояб. cavab noyabrın 17-də Aaron Hall tərəfindən verilir . 2015-11-17 22:14 '15 at 10:14 pm 2015-11-17 22:14

Piton üçqat operatorunun simulyasiyası.

Məsələn,

 a, b, x, y = 1, 2, 'a greather than b', 'b greater than a' result = (lambda:y, lambda:x)[a > b]() 

çıxış:

 'b greater than a' 
17
20 нояб. Cavab Sasikiran Vaddi 20 noyabrda verilir . 2013-11-20 13:44 '13 at 13:44 2013-11-20 13:44

Bunu edə bilərsiniz: -

[condition] and [expression_1] or [expression_2] ;

Məsələn: -

print(number%2 and "odd" or "even")

Nömrə hətta əgər ədəd təkdirsə və ya "hətta" olsa, "od" yazılacaq.


Nəticə: - Əgər şərt doğruysa, exp_1 else yerinə yetirilir, exp_2 yerinə yetirilir.

Qeyd: - 0, None, False, boşaltma, boşString False hesab olunur. 0-dən başqa hər hansı bir məlumat doğrudır.

İşdə necə:

şərt [şərt] "doğru" olduqda, ifadə_1 qiymətləndiriləcək, lakin expression_2 deyil. 0 (sıfır) ilə "və" bir şey olsaq, nəticə həmişə qeyri-sabitdir. Beləliklə, aşağıdakı ifadədə

 0 and exp 

"Exp" ifadəsi heç də qiymətləndirilməyəcək, çünki "və" 0 ilə həmişə sıfır dəyərləndiriləcək və ifadəni qiymətləndirməyə ehtiyac yoxdur. Kompilyatorun özü bütün dillərdə necə işləyir.

Daxildir

 1 or exp 

Exp ifadəsi heç bir şəkildə qiymətləndirilməyəcək, çünki "1" ilə həmişə 1 olacaqdır. Buna görə nəticə exp olacaq, çünki nəticə 1 olacaq (kompüter optimallaşdırma metodları).

Amma vəziyyətdə

 True and exp1 or exp2 

True and exp1 nin ikinci ifadəsi qiymətləndirilməyəcək, çünki True and exp1 , True and exp1 olacaq.

Oxşar şəkildə

 False and exp1 or exp2 

İfadə exp1 qiymətləndirilməyəcək, çünki yanlış 0 yazmağa bərabərdir və 0 ilə 0 olur, amma "expli" dən sonra "və ya" istifadə etdiyi üçün "və ya" ifadəsindən sonra exp2 ifadəsini qiymətləndirəcəkdir.


Qeyd: - "və ya" və "və" istifadə etməklə bu cür şəffaflıq ifadəsi yalnız ifadədə_1 əsl dəyərini False (ya 0 və ya None və ya emptilist []] və ya boşaltma ") olmadıqda istifadə edilə bilər. , expression_2 exp_1 və exp_2 arasında "və ya" varlığı ilə bağlı qiymətləndiriləcəkdir.

Əgər həqiqi exp_1 və exp_2 həqiqətindən asılı olmayaraq, bütün hallarda işləmək istəyirsə, aşağıdakıları etməlisiniz: -

[condition] and ([expression_1] or 1) or [expression_2] ;

15
20 авг. Cavab 20 Yanvarda Natesh bhat tərəfindən verilir . 2017-08-20 10:31 '17 saat 10:31 'da 2017-08-20 10:31

Üçlü şərti operator yalnız vəziyyəti bir xəttdə sınayaraq, çox satır if-else əvəz etməklə kodu daha kompakt edir.

Sintaksis:

[on_true] əgər [ifadə] else [on_false]

1- Üçqat operatordan istifadə etmək üçün sadə bir üsul:

 # Program to demonstrate conditional operator a, b = 10, 20 # Copy value of a in min if a < b else copy b min = a if a < b else b print(min) # Output: 10 

2- Tuple, lüğət və lambda istifadə etməklə birbaşa üsul:

 # Python program to demonstrate ternary operator a, b = 10, 20 # Use tuple for selecting an item print( (b, a) [a < b] ) # Use Dictionary for selecting an item print({True: a, False: b} [a < b]) # lamda is more efficient than above two methods # because in lambda we are assure that # only one expression will be evaluated unlike in # tuple and Dictionary print((lambda: b, lambda: a)[a < b]()) # in output you should see three 10 

3- Üçlü operator, if-else içərisində yazıla bilər:

 # Python program to demonstrate nested ternary operator a, b = 10, 20 print ("Both a and b are equal" if a == b else "a is greater than b" if a > b else "b is greater than a") 

Yuxarıda göstərilən yanaşma aşağıdakı kimi yazıla bilər:

 # Python program to demonstrate nested ternary operator a, b = 10, 20 if a != b: if a > b: print("a is greater than b") else: print("b is greater than a") else: print("Both a and b are equal") # Output: b is greater than a 
14
04 апр. Ali Hallaji tərəfindən verilmiş cavab 04 Apr 2018-04-04 17:02 '18 də 5:02 pm 2018-04-04 17:02

Cavabdan daha çox ipuçları (vaxt üçün açıq hündürlükləri təkrarlamaq lazım deyil), lakin bəzən onu bu cür konstruksiyalarda oneliner etiket kimi istifadə edirəm:

 if conditionX: print('yes') else: print('nah') 

olur:

 print('yes') if conditionX else print('nah') 

Bəziləri (çoxu) qeyri-pythonic (hətta ruby-biznes :) kimi qiymətləndirə bilər, amma şəxsən daha təbii - yəni necə ifadə etdiyinizi, daha çox kodun böyük bloklarında bir az daha cazibədar hiss edirəm.

12
11 мая '16 в 10:13 2016-05-11 10:13 cavab 11 may 16-da Todor Minakov tərəfindən 10:13 2016-05-11 10:13 tarixində verildi

Bəli, bu kimi istifadə edə bilərsiniz:

 is_fat = True state = "fat" if is_fat else "not fat" 

Terminal şərti operatoru haqqında daha ətraflı məlumat

10
10 июня '17 в 16:14 2017-06-10 16:14 Cavab Daniel Tub tərəfindən 10 İyun '17' də 4:14 'də 2017-05-06-10 16:14' də verilir
 In [1]: a = 1 if False else 0 In [2]: a Out[2]: 0 In [3]: b = 1 if True else 0 In [4]: b Out[4]: 1 
10
Cavab öküz verilir . 2014-05-07 16:02 07 May '14 16:02 2014-05-07 16:02
 a if condition else b 

Xatırlamaqla probleminiz varsa, bu piramıı xatırlayın:

  condition if else ab 
6
06 дек. cavab verildi shivtej 06 dek. 2018-12-06 17:45 '18 saat 17:45 'də 2018-12-06 17:45

YES, python bir üçlü operatoru var, burada eyni göstərmək üçün sintaksis və nümunə kodu var :)

 #[On true] if [expression] else[On false] # if the expression evaluates to true then it will pass On true otherwise On false a= input("Enter the First Number ") b= input("Enter the Second Number ") print("A is Bigger") if a>b else print("B is Bigger") 
5
21 окт. PythonLover tərəfindən verilən cavabı Oct 21 2018-10-21 23:14 '18 'də saat 11:14 ' də 2018-10-21 23:14

Sintaksis: Ternary operatoru aşağıdakı kimi təmsil olunacaq:

 [on_true] if [expression] else [on_false] 

məsələn

 x, y = 25, 50 big = x if x < y else y print(big) 
4
02 июля '18 в 8:37 2018-07-02 08:37 cavab Saurabh Chandra Patel iyul ayının 02-də saat 8: 37-da veriləcək

Bəli

 >>> b = (True if 5 > 4 else False) >>> print b True 
4
16 марта '16 в 19:36 2016-03-16 19:36 Cavab Alejandro Blasco'ya 16 Mart '19' da 19:36 2016-03-16 19:36 'a verilir

Digər cavablarda göstərildiyi kimi, üçlü seçim var, amma "boolean" və ya "None" dəyərlərini yoxlayarsanız, onu da təqlid edə bilərsiniz:

 >>> a = False >>> b = 5 >>> a or b 5 >>> a = None >>> a or b 5 
1
08 дек. Meow cavab 08 Dek 2016-12-08 22:05 '16 saat 10:05 'da 2016-12-08 22:05

Bəli:

Bir bool doğru və buna bənzərsə, x dəyişən x təyin etmək istəyirsən

X = 5, başqa bir şey varsa x = 10

X = [bəzi dəyər], əgər [bu doğruysa, ilk dəyər qiymətləndirir] başqa [başqa dəyər qiymətləndirir]

1
14 мая '18 в 9:25 2018-05-14 09:25 cavab 14 may 1818 tarixində 9:25 2018-05-14 09:25 tarixində Elad Goldenberg tərəfindən verilmişdir

C dən əldə edilən bir çox proqramlaşdırma dilləri ümumiyyətlə üçtərəfli şərti ifadənin aşağıdakı sintaksisinə malikdir:

 <condition> ? <expression1> : <expression2> 

Birincisi, Python B enevolent D ictator F və ya L Ife (yəni Guido van Rossum əlbəttə) onu C dilində istifadə edilməyən insanlar üçün başa düşmək çətindir, çünki onu (peyğəmbərlik tərzi kimi) rədd etdi. Bundan əlavə, kolon əlaməti : artıq Python çox istifadə olunur. PEP 308'yi onayladıktan sonra , Python nihayetinde (şu anda kullandığımız) kendi koşullu ifadesini aldı:

 <expression1> if <condition> else <expression2> 

Beləliklə, ilk növbədə vəziyyətini qiymətləndirir. True qaytarırsa, True nəticə çıxarmaq üçün qiymətləndirilir, əks halda expression2 qiymətləndiriləcəkdir. Lazy Qiymətləndirmə mexanikası sayəsində yalnız bir ifadə yerinə yetiriləcək.

Burada bəzi nümunələr var (şərtlər soldan sağa qiymətləndiriləcək):

 pressure = 10 print('High' if pressure < 20 else 'Critical') # Result is 'High' 

Ternary operatorları bir sıra bağlana bilər:

 pressure = 5 print('Normal' if pressure < 10 else 'High' if pressure < 20 else 'Critical') # Result is 'Normal' 

Aşağıdakılar əvvəlki kimi eyni:

 pressure = 5 if pressure < 20: if pressure < 10: print('Normal') else: print('High') else: print('Critical') # Result is 'Normal' 

Bu kömək edir.

1
25 дек. ARGeo tərəfindən verilən cavab 25 dekabr. 2018-12-25 16:04 '18 saat 04:04 'da 2018-12-25 16:04

bir dəyişən müəyyən edildikdə və bir dəyəri varsa yoxlamaq istəyirsinizsə, yalnız a or b ola bilərsiniz

 def test(myvar=None): # shorter than: print myvar if myvar else "no Input" print myvar or "no Input" test() test([]) test(False) test('hello') test(['Hello']) test(True) 

çıxacaq

 no Input no Input no Input hello ['Hello'] True 
0
26 апр. cavab cümə axşamı verilir 26 Apr 2018-04-26 18:41 '18 'də saat 18:41' də 2018-04-26 18:41 'də

Belə bir sual soruşmadan əvvəl, EBNF-nin nə olduğunu bilmək lazımdır.

0
12 дек. Cavab user3481141 12 dekabr. 2018-12-12 18:33 '18 saat 18:33 'də 2018-12-12 18:33

Tags bağlı digər suallar və ya bir sual