Acum cred că este timpul pentru un program cu adevărat complicat. Iată-l:
print("Halt!")
user_input = input("Who goes there? ")
print("You may pass,", user_input)
Când eu l-am rulat, iată ce a arătat ecranul meu:
Halt! Who goes there? Josh You may pass, Josh
Notă: După rularea codului apăsând F5, shell-ul python va da numai rezultatul:
Halt! Who goes there?
Trebuie să vă introduceți numele în shell-ul Python, apoi apăsați Enter pentru restul rezultatului.
Desigur, când rulați programul, ecranul dumneavoastră va arăta diferit din cauza instrucțiunii input(). Când ați rulat programul, probabil ați observat (ați rulat programul, nu?) cum a trebuit să vă introduceți numele și apoi să apăsați Enter. Apoi programul a mai tipărit ceva text și, de asemenea, numele tău. Acesta este un exemplu de intrare. Programul ajunge la un anumit punct și apoi așteaptă ca utilizatorul să introducă niște date pe care programul le poate folosi ulterior.
Desigur, obținerea de informații de la utilizator ar fi inutilă dacă nu am avea unde să punem acele informații, și aici intervin variabilele. În programul anterior user_input este o variabilă. Variabilele sunt ca o cutie care poate stoca anumite date. Iată un program pentru a afișa exemple de variabile:
a = 123.4
b23 = 'Spam'
first_name = "Bill"
b = 432
c = a + b
print("a + b is",c)
print("first_name is",first_name)
print("Sorted Parts, After Midnight or",b23)
Și iată rezultatul:
a + b is 555.4 first_name is Bill Sorted Parts, After Midnight or Spam
Variabilele stochează date. Variabilele din programul de mai sus sunt a
, b23
, first_name
, b
, și c
. Cele două tipuri de bază sunt șiruri și numere. Șirurile sunt o succesiune de litere, numere și alte caractere. În acest exemplu, b23
și first_name
sunt variabile care stochează șiruri. Spam
, Bill
, a + b is
, first_name is
, și
sunt șirurile din acest program. Caracterele sunt înconjurate de „or”. Celălalt tip de variabile sunt numerele. Amintiți-vă că variabilele sunt folosite pentru a stoca o valoare, nu folosesc ghilimele (” și ‘). Dacă doriți să utilizați o valoare reală, trebuie să utilizați ghilimele.
Sorted Parts, After Midnight or
value1 == Pim
value2 == "Pim"
Ambele arată la fel, dar în prima Python verifică dacă valoarea stocată în variabila value1
este aceeași cu valoarea stocată în variabila Pim
. În a doua, Python verifică dacă șirul (literele reale P
,i
, și m
) sunt aceleași ca în value2
.
Atribuire
Deci, avem aceste casete numite variabile și, de asemenea, date care pot intra în variabilă. Computerul va vedea o linie precum first_name = "Bill"
și o va citi ca „Pune șirul Bill
în caseta (sau variabilă) first_name
”. Mai târziu vede afirmația c = a + b
și o citește ca „puneți suma a + b
sau 123.4 + 432
care este egală cu 555.4
în c
”. Partea dreaptă a instrucțiunii (a + b
) este evaluată și rezultatul este stocat în variabila din partea stângă (c
). Aceasta se numește atribuire și nu trebuie să confundați aici semnul egal al atribuirii (=) cu „egalitatea” în sens matematic (pentru asta va fi folosit == mai târziu).
Iată un alt exemplu de utilizare a variabilelor:
a = 1
print(a)
a = a + 1
print(a)
a = a * 2
print(a)
Și, desigur, iată rezultatul:
1 2 4
Chiar dacă aceeași variabilă apare pe ambele părți ale semnului egal (de exemplu, spam = spam), computerul o citește în continuare ca „Aflați mai întâi datele de stocat și apoi aflați unde se duc datele”.
Încă un program înainte de a încheia acest capitol:
number = float(input("Type in a number: "))
integer = int(input("Type in an integer: "))
text = input("Type in a string: ")
print("number =", number)
print("number is a", type(number))
print("number * 2 =", number * 2)
print("integer =", integer)
print("integer is a", type(integer))
print("integer * 2 =", integer * 2)
print("text =", text)
print("text is a", type(text))
print("text * 2 =", text * 2)
Ieșirea pe care am primit-o a fost:
Type in a number: 12.34 Type in an integer: -3 Type in a string: Hello number = 12.34 number is a <class 'float'> number * 2 = 24.68 integer = -3 integer is a <class 'int'> integer * 2 = -6 text = Hello text is a <class 'str'> text * 2 = HelloHello
Observați că number
creat cu float(input())
,int(input())
returnează un număr întreg, un număr fără virgulă zecimală, în timp ce text
creat cu input()
returnează un șir (poate fi scris ca str(input())
, de asemenea). Când doriți ca utilizatorul să introducă o zecimală, utilizați float(input())
, dacă doriți ca utilizatorul să introducă un număr întreg utilizați int(input())
, dar dacă doriți ca utilizatorul să introducă un șir, utilizați input()
.
A doua jumătate a programului folosește funcția type()
care spune ce tip este o variabilă. Numerele sunt de tip int
sau
, care sunt prescurtarea pentru integer (întreg) și, respectiv, floating point (virgulă mobilă) (folosite mai ales pentru numere zecimale). Șirurile de text sunt de tipul
float
, prescurtare pentru string (șir). Numerele întregi și flotanții pot fi lucrate prin funcții matematice, șirurile nu. Observați cum atunci când Python înmulțește un număr cu un întreg, se întâmplă lucrul așteptat. Cu toate acestea, atunci când un șir este înmulțit cu un număr întreg, rezultatul este că sunt produse mai multe copii ale șirului (de ex.
strtext * 2 = HelloHello
).
Operațiile cu șiruri fac lucruri diferite față de operațiile cu numere. De asemenea, unele operații funcționează numai cu numere (atât numere întregi, cât și numere în virgulă mobilă) și vor da o eroare dacă este folosit un șir. Iată câteva exemple de mod interactiv pentru a arăta mai multe.
>>> print("This" + " " + "is" + " joined.") This is joined. >>> print("Ha, " * 5) Ha, Ha, Ha, Ha, Ha, >>> print("Ha, " * 5 + "ha!") Ha, Ha, Ha, Ha, Ha, ha! >>> print(3 - 1) 2 >>> print("3" - "1") Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for -: 'str' and 'str' >>>
Iată lista unor operații cu șir:
Operația | Simbol | Exemplu |
---|---|---|
Repetiție | * |
"i" * 5 == "iiiii" |
Concatenare | + |
"Hello, " + "World!" == "Hello, World!" |
Exemple
Rate_times.py
# This program calculates rate and distance problems
print("Input a rate and a distance")
rate = float(input("Rate: "))
distance = float(input("Distance: "))
time=(distance/ rate)
print("Time:", time)
Exemple de rulări:
Input a rate and a distance Rate: 5 Distance: 10 Time: 2.0
Input a rate and a distance Rate: 3.52 Distance: 45.6 Time: 12.9545454545
Area.py
# This program calculates the perimeter and area of a rectangle
print("Calculate information about a rectangle")
length = float(input("Length: "))
width = float(input("Width: "))
Perimeter=(2 * length + 2 * width)
print("Area:", length * width)
print("Perimeter:",Perimeter)
Exemple de rulări:
Calculate information about a rectangle Length: 4 Width: 3 Area: 12.0 Perimeter: 14.0
Calculate information about a rectangle Length: 2.53 Width: 5.2 Area: 13.156 Perimeter: 15.46
Temperature.py
# This program converts Fahrenheit to Celsius
fahr_temp = float(input("Fahrenheit temperature: "))
celc_temp = (fahr_temp - 32.0) *( 5.0 / 9.0)
print("Celsius temperature:", celc_temp)
Exemple de rulări:
Fahrenheit temperature: 32 Celsius temperature: 0.0
Fahrenheit temperature: -40 Celsius temperature: -40.0
Fahrenheit temperature: 212 Celsius temperature: 100.0
Fahrenheit temperature: 98.6 Celsius temperature: 37.0
Exerciții
Scrieți un program care primește 2 variabile șir și 2 variabile numerice de la utilizator, le concatenează (le unește fără spații) și afișează șirurile, apoi înmulțește cele două numere pe o nouă linie.
Soluţie
string1 = input('String 1: ')
string2 = input('String 2: ')
float1 = float(input('Number 1: '))
float2 = float(input('Number 2: '))
print(string1 + string2)
print(float1 * float2)
Include texte din Wikibooks traduse și adaptate de Nicolae Sfetcu
Lasă un răspuns