Uchinchi o'zgaruvchini ishlatmasdan 2 o'zgaruvchining 2 qiymatini almashtiring; python

Shunday qilib, do'stim mening python dasturlashim qanday kelishini so'radi; Men juda ko'p narsalarni o'rgandim va bu juda yaxshi ketayotganini aytdim. Shunda do'stim, matematik-snob, meni so'raydi:

"Uchinchi o'zgaruvchini vaqtinchalik joylovchi sifatida ishlatmasdan 2 o'zgaruvchining qiymatini almashtira olasizmi?"

0

5 javoblar

Python dagi ikkita o'zgaruvchini almashtirishning kanonik usuli

a, b = b, a

Shuni esda tutingki, bu "code" ning "turi" yoki " b " (son, string, tuple, object, ... Ikkala o'zgaruvchining ham har xil turdagi mos yozuvlar qiymatlari, albatta, u ham ishlaydi.


As many imperative languages, Python evaluates assignments right to left. Conceptually all behave like if a tuple was build for the right hand part of the expression, and then deconstructed to perform the affectation to the left hand part. This has already been explained more clearly than I can here: https://stackoverflow.com/a/14836456/2363712

The real details are implementation dependent though. For example, to build on a comment by @undefined is not a function below, the CPython virtual machine has a ROT_TWO opcode that swap the two top-level items on the stack, and so allow to optimize such affectation. See this previous answer for a detailed explanation: https://stackoverflow.com/a/21047622/2363712

20
qo'shib qo'ydi
Ichki sifatida, bu holda, stack ustida qo'shimcha joy ishlatishi mumkin. Buni topish uchun Python bytecode (?) Ko'rsatmalarini olishning bir usuli bor, lekin buni boshimning boshidan bilmayman ...
qo'shib qo'ydi muallif Brendan, manba
Martijndan ushbu ajoyib javob bilan javobingizdagi havolani almashtirishingiz mumkin.
qo'shib qo'ydi muallif Ashwini Chaudhary, manba
@SylvainLeroux Siz haqsiz, ikkalasini ham saqlab turishingiz kerak.
qo'shib qo'ydi muallif Ashwini Chaudhary, manba
"Ko'pgina majburiy tillar, Python o'ngdan chapga baho beradi" - yo'q, deyarli doim o'ngga to'g'ri keladi. Bu topshiriq faqat g'ayrioddiy maxsus ishdir.
qo'shib qo'ydi muallif user2357112, manba
Dasturga oid batafsil ma'lumot? ;) Yana jiddiy, siz ehtimol haqlisiz. Lekin, bu savolni tushunganimdek, bu "oraliq xotira joyi" emas, balki uchinchi Python o'zgaruvchisi dan foydalanmasdan turibdi.
qo'shib qo'ydi muallif Sylvain Leroux, manba
@undefinedisnotafunction Ko'rsatgich uchun rahmat! Men javobdan ko'ra aks ettirishim mumkin bo'lgan eng yaxshi ishni tahrir qilaman.
qo'shib qo'ydi muallif Sylvain Leroux, manba
@undefinedisnotafunction Yana rahmat. Va nihoyat, men ularni ikkalasini ham saqlayman, Martienin javoblari CPythonni amalga oshirishda katta bo'lsa, ikkinchisida soddalikning fazilati bor. Keyinchalik, bu dasturni amalga oshirish nuqtai nazaridan "to'g'ri" bo'lmasa ham, Pythonning yangi kelganlari tomonidan tushunarli bo'lishi uchun "etarli" vakillikni taqdim etadi deb o'ylayman. Yoki xato qilyapmanmi?
qo'shib qo'ydi muallif Sylvain Leroux, manba

Aftidan oddiy savol. Orqaga qarab, ehtimol matematik ravishda o'ylaysizmi yoki yo'qligini aniqlash uchun mo'ljallangan. Men o'ylab qoldim, bu oddiy muammo emas, balki erishish mumkin emas.

Tadqiqotlar shuni ko'rsatadiki, bu ko'plab savollarga javob beradi. Yaxshi va noto'g'ri javoblar . Men yaqqol yechim topdim, deb o'ylayman:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# MODULES


# VARIABLES
x = 20
y = 10


# FUNCTIONS
# Swap 2 vars: longhand method, the portable way:
def swapNosL(val1, val2):
    print("BEFOR: val1: %r,  val2: %r") % (val1, val2)
    val1 = val1 + val2
    val2 = val1 - val2
    val1 = val1 - val2
    print("AFTER: val1: %r,  val2: %r") % (val1, val2)
    return(val1, val2)


# Swap 2 vars: shorthand method, the non/less-portable way:
def swapNosC(val1, val2):
    print("BEFOR: val1: %r and val2: %r") % (val1, val2)
    val1, val2 = val2, val1
    print("AFTER: val1: %r and val2: %r") % (val1, val2)
    return(val1, val2)


# MAIN PROGRAM
print("")
print("The Problem:")
print("We need to swap 2 variables without using a 3rd.")
print("The values: 'x' is %r and 'y' is %r.") % (x, y)
print("")

(retVal1, retVal2) = swapNosC(x, y)
print("")
print("Now values: 'x' is %r and 'y' is %r.") % (retVal1, retVal2)

print"\n"

Ba'zi keraksiz takrorlash mavjud bo'lsa-da, mantiq mustahkam. Belgilangan yo'nalishda:

1) Bu ijobiy va salbiy barcha tamsayılar bilan ishlaydi; Hozirgacha suzib yurmaganman.

2) Xuddi shu xotira 1 tomonlama yoki ikkinchisidir; faqat ikkita parametr ishlatiladi.

3) Taşınabilirlik har doim ham maqsad bo'lishi kerak. Dasturlash tillari o'chib ketgan va yangi portga ulanish kerak bo'lgan hollarda, tadqiqot bu muammolarni matematik tarzda ko'rib chiqishni yanada kaTTa ko'chirish imkonini beradi.

"Yomon" misolda bu usul tilga xos va tilga o'tish (bir kun) boshqa echimlarni talab qiladi. Umid qilamanki, Python hech qachon COBOLga bormaydi, lekin kelajak kaTTa o'rin.

Biroq, "yaxshi" misolda matematika C tilida xuddi shunday tarzda ko'rib chiqiladi. Aslida, tadqiqot shuningdek matematika ko'pincha odatda ko'p tillarda xuddi shu tarzda ishlanganligini ko'rsatadi.

Shuning uchun matematikadan xulosa chiqarish va sintaksining modifikatsiyasini faqatgina muzokaralar o'tkazish yanada qulay usuldir.

Ba'zan men do'stimga bu yaxshi ta'lim olish imkoniyati ekanini tushunib etaman. Lekin bir muncha vaqt emas. Javobni topdim, ammo tadqiqot bilan aldash bilan muvaffaqiyatsiz bo'ldi.

TT

4
qo'shib qo'ydi
Siz tavsiflaydigan xatti-harakatlar, suzuvchi nuqta raqamlarining xarakteri. Bu mening pythonga xos yoki maxsus mashinaga xos emas. Bu qaror emas, bu xato emas. Men sizni sinovdan o'tkazgan narsa haqida hech qanday tasavvurga ega emasman, lekin swapNosC (1e10, 1e-10) ni ishlatsam, chiqish (1e-10, 10000000000.0) . Sintaksisi a, b = b, to'liq ma'nosini bildiradi, ammo qaysi nom qaysi qiymatga bog'liqligini o'zgartiradi.
qo'shib qo'ydi muallif murgatroid99, manba
OK, bu o'rganish mashqlari. Pythonda nimani qilishni so'radingiz. Siz yechim taklif qildingiz. Men, shu jumladan, bir nechta odam sizning yechimingiz bilan bog'liq muammolarni tushuntirdi. Sizning sharhlaringiz hech narsa o'rgana olmaganligini ko'rsatadi.
qo'shib qo'ydi muallif murgatroid99, manba
Kodni Python 2.7 protokolida yozilgan kabi ishlataman. Va bu muhim emas. Men taklif qilgan birinchi kirish uchun chiqish hali ham noto'g'ri. Agar 0.000000100000761449337 qanday qilib 0.0000001 dan farqli ekanini tushunmasangiz, sizga yordam berolmayman.
qo'shib qo'ydi muallif murgatroid99, manba
Bu erda asosiy muammo - bu sizning funktsionalizatsiya o'rnini kichik kirishlar bilan ishlaydigan kod uchun o'zgaruvchan almashtirish uchun o'zgartirish, ba'zi bir kirishlardagi kutilmagan natijalarga ega bo'lish, kutilmagan yon ta'sirga ega bo'lishi mumkinligini va hatto ko'chma bo'lmagan b>. Ushbu kodning S versiyasi tamsayı qiymatlari uchun kompilyator xatti-harakatlariga bog'liq va u holda xuddi shu sabab uchun suzuvchi nuqta yozuvlari uchun noto'g'ri qiymatlarni chiqaradi. Bu funktsiyani Python kodidan foydalanish uchun hech qanday sabab yo'q va uni kutubxonaga joylashtirish faqatgina API iste'molchilariga xatti-harakatlari haqida noto'g'ri taxminlar berishiga olib keladi.
qo'shib qo'ydi muallif murgatroid99, manba
Siz tushunmaysiz. Men kiritgan ma'lumotdan olingan chiqish (1000000.0, 1.00000761449337e-07) . Bu nafaqat eksponent chiqishi, balki dan oldin e dan farqli raqamlar mavjud. Bunga qanday munosabatda: 0.3 va 1.0 harakat qilib ko'ring. Bu esa (1.0, 0.30000000000000004) ga olib keladi. Bu boshqa raqam.
qo'shib qo'ydi muallif murgatroid99, manba
Siz o'zingizni suzuvchi nuqta raqamlarini almashtirishni xohlaganingizni aytdingiz, ammo sizning yechimingiz ham buni to'g'ri amalga oshirmaydi. Masalan, 0.0000001 va 1000000 argumentlari noto'g'ri chiqdi beradi. Va men sizlarga nima sababdan satrlarni eslatganingizdan amin emasman; albatta, ular bilan ishlamaydi (ular uchun ajratish operatori aniqlanmagan).
qo'shib qo'ydi muallif murgatroid99, manba
@todd_dsm Muammoning mazmuni? Sizning savolingiz hech qachon hech qanday turdagi narsalarni eslatmaydi. "Argumentlar" deb nomlanadi. Sizning yechimingiz muammoni bartaraf etadigan yagona narsa. Agar siz har qanday turdagi ikkita o'zgaruvchini birinchi yechimga o'tkazsangiz, u kutilganidek ishlaydi. Ikkinchi funktsiya o'zgaruvchilar tamsayılar bo'lsa, suzuvchi nuqta raqamlari va maxsus operatorlar bilan ba'zi ob'ektlar uchun noto'g'ri natijalar berish va boshqa barcha narsalar uchun xato qilish uchun muvaffaqiyatli bo'ladi. Sizning g'alati taxminlaringizda ham ishlamaydi. S-texnik texnik jihatdan aniqlanmagan C da texnik jihatdan ishlamaydi.
qo'shib qo'ydi muallif murgatroid99, manba
Agar siz atrof-muhit deb hisoblasangiz, Python veb-brauzeridan foydalanamiz. Biz, albatta, xuddi shunday natijaga erishishimiz kerak. Misol: pythonfiddle.com/different-swap-function .
qo'shib qo'ydi muallif murgatroid99, manba
OK, sizning tarjimonim mendan ko'ra ko'proq dumaloq qadriyatlarni ko'rsata oladi. 1e10 va 1e-10 yozuvlarini sinab ko'ring. (0.0, 10000000000.0) chiqishini olaman
qo'shib qo'ydi muallif murgatroid99, manba
@todd_dsm Siz ro'yxatni yoki dictni raqamga moslashtira olmaysiz. Va bu suzuvchi nuqta raqamlarining ishlashi sababli ham, ko'plab suyuqliklar uchun ishlamaydi. Siz ishlayotgan tilda ishlaydigan kodni yozish o'rniga, belgi tomonidan deyarli boshqa belgiga boshqa tilga tarjima qilinishi mumkin bo'lgan kod yozish uchun hech qanday sabab yo'q.
qo'shib qo'ydi muallif murgatroid99, manba
Ikkala holatda ham siz yozgan vazifalarning birortasini bildirasiz, unda siz noto'g'ri deb hisoblaysiz. swapNosC hech qanday konvertatsiya qilmaydi va Python qiymatlarining har qanday juftligi uchun ishlaydi.
qo'shib qo'ydi muallif murgatroid99, manba
Ha va swapNosL (1e10, 1e-10) chiqadi (0.0, 10000000000.0) . 0! = 1e-10 , shuning uchun u turli xulq va noto'g'ri.
qo'shib qo'ydi muallif murgatroid99, manba
Rostini aytganda, siz yuborgan birinchi usul Pythonda almashinuvni amalga oshirishning dahshatli usuli hisoblanadi. Ko'p suzuvchi nuqta qiymatida sukut saqlanmaydi va u nosferaviy bo'lmagan turlari uchun ishlamaydi.
qo'shib qo'ydi muallif murgatroid99, manba
@todd_dsm agar bu bitta yoki ikkita kodli satr bo'lsa, va har ikki tilda ham talabga javob va suboptimallik bo'lsa, unda men portativlik haqida xavotirlanmasdim. Portativorlik muammosi haqida o'ylab ko'rganimda, "bu signallar Windowsda to'g'ri ishlaydi" deb o'ylayman. emas, balki "bu o'zgaruvchining almashinuvini C ga o'zgartirishi mumkinmi?"
qo'shib qo'ydi muallif TheSoundDefense, manba
Lekin bu faqat raqamli o'zgaruvchilar ustida ishlaydi, to'g'rimi?
qo'shib qo'ydi muallif TheSoundDefense, manba
Ishonchim komilki, nima uchun siz buni amalga oshirishning yanada "ko'chma" usulini xohlaysiz, halol bo'lishingiz kerak. Odamlar Python kodini nusxa ko'chirmaydilar, uni .c faylga joylashtirishadi va bir nechta tuzatishlar qilishadi. Agar qilayotgan ishlaringiz raqamlar almashinuvi bo'lsa, unda bunday past darajali operatsiya uchun kuch kerakmi yo'qmi bilmayman.
qo'shib qo'ydi muallif TheSoundDefense, manba
Ogohlantirish sifatida, Autizm spektrining buzilishlariga havola qilish orqali boshqalarni haqorat qilishga urinish bu erda muhosaba qilinmaydi. Ushbu murojaatlarni olib tashlash uchun mas'ul sharhlarni tahrirladim.
qo'shib qo'ydi muallif Brad Larson, manba
left, right = right, left nima uchun "yomon javob" deb hisoblanganini tushuntirib bera olasizmi? Men tushunganimdek, bu savol "Python yo'naltirilgan", shuning uchun muammolarni hal qilish uchun nima uchun til ishlatmang.
qo'shib qo'ydi muallif Sylvain Leroux, manba
@murgatroid99 Men sizni boshqa qiymatga ega ekanligingizni ko'ra olaman - faqat qanday qilib bilmayman; "Men buyruq satrida ishlayapman" nima qilayotganingizni tushuntirmaydi; buning uchun hech qanday yo'l yo'q. Siz tarjimondan foydalanasizmi? IDLE? Men uni ishga tushirganimda - u ishlaydi; uni skriptga tushirib, bajaring: $ python swap2vars.py
qo'shib qo'ydi muallif todd_dsm, manba
@ murgatroid99 jarayon yoki ekologik farq mavjud; Bu chiqishi farqni tushuntirishi mumkin bo'lgan yagona narsa. Siz nima qilayotganingizni bilmayman va endi menga g'amxo'rlik qilmaydi. Men ikkalamiz ham bir xil natijani qo'lga kiritmoqdamiz.
qo'shib qo'ydi muallif todd_dsm, manba
@ murgatroid99 Men uni birgalikda ishlatganman: nusxa ko'chirish, uni swap2vars.py deb nomlangan faylga joylashtirish, x va y ni istagan narsangizga o'zgartirish va ishga tushirish. Makintosh va Linux tizimlarida ikkala funksiya ham bir xil natijani ishlab chiqaradi: so'z chegarasining o'zaro bog'liqligini ko'rsatuvchi belgilar.
qo'shib qo'ydi muallif todd_dsm, manba
@murgatroid99 Har ikkala funktsiyali ma'lumotlaringizni sinab ko'rish men uchun xuddi shunday natijani beradi. Ba'zi ezoterik ekologik holatga ega bo'lishingiz mumkin, yoki men buni qilaman. Lekin nima bo'lishi mumkinligini tasavvur qila olmayman. Bundan tashqari, bu python statik semantikaning muvaffaqiyatsizligi. Bu holatda Python boshqa joylarda bo'lgani kabi mazmunli xatolikni ko'rsatishi kerak. Buning o'rniga, bashorat qilinadigan, lekin potentsial ravishda nomaqbul tarzda amalga oshiriladi. Hech bir til siz uchun biron-bir qarorni qabul qilmasligi kerak, aksincha, xatolik yuz berdi. Funktsiya bu masala bo'yicha mustaqil emas.
qo'shib qo'ydi muallif todd_dsm, manba
@murgatroid99 Sizning oxirgi kiritilgan ma'lumotlaringizni hisobga olgan holda men siz bilan bir xil mahsulotni olaman. Javob bo'lsa ham o'zgarmaydi. Yomg'irlar har ikki holatda ham aylantirilishi kerak.
qo'shib qo'ydi muallif todd_dsm, manba
@ murgatroid99 SIZNING SIYoSATLARDA (MENING va boshqa) SIZNING QO'ShIMChI PROBLEM. SIZNING NOMZODLARNI BOSHLADI. Siz so'z chegara buzdingiz - siz uchun yaxshiroq: SAYDLARNI CONVERT.
qo'shib qo'ydi muallif todd_dsm, manba
@ murgatroid99 1) nima qilayotganingizni bilmayman; qiymatlar beraman: qiymatlar: 'x' 0.300000 va 'y' - chiqish uchun 1.000000; uzoq, lekin to'g'ri. 2) Bu API-emas, balki o'rganishning chuqurlashishi.
qo'shib qo'ydi muallif todd_dsm, manba
@ murgatroid99 1) Floats: Sizning ko'rishingiz ko'rsatkich belgisidir, chunki byte-count so'zi chegarasi kesib o'tgan, ammo siz tanlagan yechimda ham buziladi. Shunday qilib, raqamlarni aylantiring keyin '% r '% f' ga; vim ichida:% s /% r /% f/g; hal qilindi. 2) Men hech qanday satrlarni aytmadim, bu birinchi izohga javoban (TheSoundDefense); test natijalari simlarni almashtirishni ko'rsatmoqda.
qo'shib qo'ydi muallif todd_dsm, manba
@ murgatroid99 Ikkala ijobiy va salbiy gipotezalar bilan testlangan - hali ham ushlab turiladi. Men nima haqida gapirayotganingizga amin emasman.
qo'shib qo'ydi muallif todd_dsm, manba
@ murgatroid99: Faqat g'alati taxmin, tamsayılar va satrlarni almashtirish edi - bu haqda o'ylab ko'rganingizda g'alati emas; yaxshi ishlaydi. Buning tasdig'i emas - hamma siz tasavvur qilishingiz mumkin bo'lgan har qanday muammo uchun; idish-tovoqlarni qilmaydi, yoqa uchun lab bo'yog'ini olib tashlamaydi yoki soliq to'lamaydi. Biron-bir narsalaringizni ayting yoki uni ziplang. Sizning ishingizni ko'rsatish.
qo'shib qo'ydi muallif todd_dsm, manba
@ murgatroid99: Siz ilgari surgan savol "int" va "float" tiplari haqida edi, endi ularni ro'yxatlar va lug'atlarga kengaytirishni xohlaysizmi? Sizning sharhlaringizni muammoning nuqtai nazari bo'yicha ushlab turishga harakat qiling.
qo'shib qo'ydi muallif todd_dsm, manba
@TheSoundDefense: ha - har ikkalasi ham ko'chma savollar. Shuningdek, "talabga javob" kabi so'zlarni qo'llay boshlagandan so'ng, menga ko'proq sinov talab qilinadi, deb o'ylayman. To'liq sinovdan o'tgan kod, agar to'liq bo'lmasa, xavfni kamaytiradi.
qo'shib qo'ydi muallif todd_dsm, manba
Men peer-review'ga qarshi emasman, lekin ishimni ko'rsatish uchun yaxshi bo'ldim. Agar siz meni ovoz berish uchun ovoz berishni rejalashtirmoqchi bo'lsangiz, u holda ishingizni ko'rsatish orqali yaxshi usul ko'rsatish. Bu bizni fikrdan haqiqatga o'tadi; muqobil bir oz dangasa.
qo'shib qo'ydi muallif todd_dsm, manba
@TheSoundDefense: portativlik kichik, ammo muhim qadamdir. 10k marafonni boshqarib, marafon chizig'idan oldin 100 metrcha to'xtash kabi. Dastur juda og'ir ish; Taşınabilirlik so'nggi bir necha qadam. Umuman olganda, intervyu davomida sizni g'amxo'r dasturchi sifatida ko'rsating. agar bu haqda o'ylamagan bo'lsangiz, boshqa nomzod.
qo'shib qo'ydi muallif todd_dsm, manba
@ murgatroid99: ROST. Kod normalizatsiyani "int" yoki "float" turiga kiritish kerak bo'lsa-da, mantiq saqlanib qoladi.
qo'shib qo'ydi muallif todd_dsm, manba
@TheSoundDefense Men tamsayılardan strings ga o'zgartirilgandan so'ng test qildim, natijada qiymatlar o'zgaradi.
qo'shib qo'ydi muallif todd_dsm, manba
@SylvainLeroux: "chap, o'ng, o'ng, chap" tushuntirishlari dasturning ostida.
qo'shib qo'ydi muallif todd_dsm, manba
 x = x + y; //x now becomes 15
 y = x - y; //y becomes 10
 x = x - y; //x becomes 5

Bu kodning asosiy qismi Sizning do'stingiz bu degani

3
qo'shib qo'ydi
x = 15 y = 5; x = 15 + 5 = 20; y = 20-15 = 5; y qiymati hozir 5 dan oshadi. x = 20-5 = 15;
qo'shib qo'ydi muallif Gokul Kurup, manba

Agar sizning do'stingiz "matematik" bo'lsa, u XOR funktsiyasini raqamlarning bittagina namoyishiga qo'llash mumkin bo'lgan tillarda foydalanishingiz mumkin bo'lgan muayyan makrni yodda tutishi mumkin.

Aytaylik, X va Y o'zgaruvchilari, a va b boshlang'ich qadriyatlariga ega. Quyidagi topshiriqlarni bajaring (natija sharhlar sifatida ko'rsatilgan o'zgaruvchilar qiymatlari):

(start)      # X == a; Y == b
X = X XOR Y  # X == a XOR b;  Y == b
Y = X XOR Y  # X == a XOR b;  Y == b XOR (a XOR b)
X = X XOR Y  # X == (a XOR b) XOR b XOR (a XOR b);  Y == b XOR (a XOR b)

XOR biriktiruvchi ekanligi sababli, hosil bo'lgan tenglamalarni quyidagicha taqsimlashimiz mumkin:

X == (a XOR a) XOR (b XOR b) XOR b
Y == (b XOR b) XOR a

x XOR x == 0 va x XOR 0 == x bo'lgani uchun, biz barcha bu juftlarni o'zlari bilan XOR'ed o'zgaruvchilari va qolganlari:

X == b
Y == a

biz uchinchi o'zgaruvchidan foydalanib qadriyatlarni almashtirish uchun biz xohlagan narsamiz.

Pythonda biroz manipulyatsiya qilganimdan beri ancha vaqt bo'ldi, shuning uchun men bu alomat Pythonda ishlayaptimi, deb aytolmayman, lekin u erda ishlaydigan tillar bor. Men sizni ayta olmayman, bu uning aniq bo'lmaganligini yo'qotish uchun etarli foyda keltiradimi-yo'qmi.

1
qo'shib qo'ydi
Aslida siz haqsiz. O'sha paytda do'stim nimani eslay olmasdi. Muammoni eslab qolishi mumkin, ammo bu yechimning nomi emas. Yaqinda XORda qoqilib qoldim va bu haqda undan so'radim; u tasdiqladi.
qo'shib qo'ydi muallif todd_dsm, manba
Aslida, mening dastlabki ulushim bilan bo'lgan umidim til-agnostik javob bilan yakunlangan katta suhbatlar uchun qurilish bloki bo'lishga mo'ljallangan edi; bu umidlar deyarli darrov vafot etdi. Mening misolim faqat pythonda bo'lgan. Bu o'sha paytda o'sha erda bo'lganim. To'g'ri javob beradigan bo'lsam, @afeldspar haqida qayg'uraman.
qo'shib qo'ydi muallif todd_dsm, manba

to'g'ridan-to'g'ri harakat qilishingiz mumkin,

a, b = b, a

Uchinchi o'zgaruvchini ishlatmasdan qiymati almashtirishning kanonik usuli.

1
qo'shib qo'ydi
Matematiklar
Matematiklar
633 ishtirokchilar

Kanalga obuna buling @Matematikak Masala va misollar yechimlari uchun guruh Guruhda faqat matematikaga oid ma'lumot bo'lishi shart.

Python
Python
372 ishtirokchilar

Bu guruh python dasturlash tilini muhokama qilish uchun. Iltimos, o'zingizni hurmat qiling va faqat dasturlash bo'yicha yozing. Botlar mavzusini @botlarhaqida guruhida muhokama qling! FAQ: @PyFAQ Offtopic: @python_uz_offtopic

MATEMATIKA GRANT
MATEMATIKA GRANT
356 ishtirokchilar

Guruh muallifi : @Yusupov_Ahadjon Guruh rasmiy kanali @dtm_axborotnoma Kimda chiqmagan misoli bo'lsa guruhga jo'natishi mumkin! Guruh qoidalari Chat Reklama Soʻkingan Futbol Sticker Xamma bir birini xurmat qilsin

Python offtopic group !
Python offtopic group !
150 ishtirokchilar

@python_uz gruppasining offtop gruppasi. offtop bo'lsa ham reklama mumkin emas ) Boshqa dasturlash tiliga oid gruppalar @languages_programming