mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-11-22 21:52:31 +03:00
Minor updates
This commit is contained in:
parent
534c5dcb93
commit
31c16d7eb9
@ -4,8 +4,6 @@ author: Malcolm Fell
|
|||||||
author_url: http://emarref.net/
|
author_url: http://emarref.net/
|
||||||
---
|
---
|
||||||
|
|
||||||
# PHP
|
|
||||||
|
|
||||||
This document describes PHP 5+.
|
This document describes PHP 5+.
|
||||||
|
|
||||||
## [Basic Syntax](http://www.php.net/manual/en/language.basic-syntax.php)
|
## [Basic Syntax](http://www.php.net/manual/en/language.basic-syntax.php)
|
||||||
@ -74,7 +72,7 @@ $sgl_quotes
|
|||||||
END; // Nowdoc syntax is available in PHP 5.3.0
|
END; // Nowdoc syntax is available in PHP 5.3.0
|
||||||
|
|
||||||
// Manipulation
|
// Manipulation
|
||||||
$concatinated = $sgl_quotes + $dbl_quotes;
|
$concatenated = $sgl_quotes + $dbl_quotes;
|
||||||
```
|
```
|
||||||
|
|
||||||
### Compound
|
### Compound
|
||||||
@ -471,4 +469,4 @@ Visit the [official PHP documentation](http://www.php.net/manual/) for reference
|
|||||||
|
|
||||||
If you're interested in up-to-date best practices, visit [PHP The Right Way](http://www.phptherightway.com/).
|
If you're interested in up-to-date best practices, visit [PHP The Right Way](http://www.phptherightway.com/).
|
||||||
|
|
||||||
If you're coming from a language with good package management, check out [Composer](http://getcomposer.org/).
|
If you're coming from a language with good package management, check out [Composer](http://getcomposer.org/).
|
||||||
|
@ -1,20 +1,25 @@
|
|||||||
---
|
---
|
||||||
language: Python
|
language: python
|
||||||
author: Louie Dinh
|
author: Louie Dinh
|
||||||
author_url: http://ldinh.ca
|
author_url: http://ldinh.ca
|
||||||
---
|
---
|
||||||
|
|
||||||
Python was created by Guido Van Rossum in the early 90's. It is now one of the most popular languages in existence. I fell in love with Python for it's syntactic clarity. It's basically executable pseudocode.
|
Python was created by Guido Van Rossum in the early 90's. It is now one of the most popular
|
||||||
|
languages in existence. I fell in love with Python for it's syntactic clarity. It's basically
|
||||||
|
executable pseudocode.
|
||||||
|
|
||||||
```Python
|
Note: This article applies to Python 2.7 specifically, but should be applicable
|
||||||
|
to Python 2.x. Look for another tour of Python 3 soon!
|
||||||
|
|
||||||
|
```python
|
||||||
# Single line comments start with a hash.
|
# Single line comments start with a hash.
|
||||||
""" Multiline comments can we written
|
""" Multiline comments can we written
|
||||||
using three "'s
|
using three "'s
|
||||||
"""
|
"""
|
||||||
|
|
||||||
----------------------------------------------------
|
####################################################
|
||||||
-- 1. Primitive Datatypes and Operators
|
## 1. Primitive Datatypes and Operators
|
||||||
----------------------------------------------------
|
####################################################
|
||||||
|
|
||||||
# You have numbers
|
# You have numbers
|
||||||
3 #=> 3
|
3 #=> 3
|
||||||
@ -25,7 +30,8 @@ Python was created by Guido Van Rossum in the early 90's. It is now one of the m
|
|||||||
10 * 2 #=> 20
|
10 * 2 #=> 20
|
||||||
35 / 5 #=> 7
|
35 / 5 #=> 7
|
||||||
|
|
||||||
# Division is a bit tricky. It is integer division and floors the results automatically.
|
# Division is a bit tricky. It is integer division and floors the results
|
||||||
|
# automatically.
|
||||||
11 / 4 #=> 2
|
11 / 4 #=> 2
|
||||||
|
|
||||||
# Enforce precedence with parentheses
|
# Enforce precedence with parentheses
|
||||||
@ -58,16 +64,16 @@ not False #=> True
|
|||||||
None #=> None
|
None #=> None
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------
|
####################################################
|
||||||
-- 2. Variables and Collections
|
## 2. Variables and Collections
|
||||||
----------------------------------------------------
|
####################################################
|
||||||
|
|
||||||
# Printing is pretty easy
|
# Printing is pretty easy
|
||||||
print "I'm Python. Nice to meet you!"
|
print "I'm Python. Nice to meet you!"
|
||||||
|
|
||||||
|
|
||||||
# No need to declare variables before assigning to them.
|
# No need to declare variables before assigning to them.
|
||||||
some_var = 5 # Convention is to use lower_case_with_underscores for variables
|
some_var = 5 # Convention is to use lower_case_with_underscores
|
||||||
some_var #=> 5
|
some_var #=> 5
|
||||||
|
|
||||||
# Accessing a previously unassigned variable is an exception
|
# Accessing a previously unassigned variable is an exception
|
||||||
@ -97,7 +103,7 @@ del li[2] # li is now [1, 2, 3]
|
|||||||
li + other_li #=> [1, 2, 3, 4, 5, 6] - Note: li and other_li is left alone
|
li + other_li #=> [1, 2, 3, 4, 5, 6] - Note: li and other_li is left alone
|
||||||
|
|
||||||
# Concatenate lists with extend
|
# Concatenate lists with extend
|
||||||
li.extend(other_li) # Now li is [1 ,2 ,3 ,4 ,5 ,6]
|
li.extend(other_li) # Now li is [1, 2, 3, 4, 5, 6]
|
||||||
|
|
||||||
# Check for existence in a list with in
|
# Check for existence in a list with in
|
||||||
1 in li #=> True
|
1 in li #=> True
|
||||||
@ -120,10 +126,13 @@ filled_dict = {"one": 1, "two": 2, "three": 3}
|
|||||||
filled_dict["one"] #=> 1
|
filled_dict["one"] #=> 1
|
||||||
|
|
||||||
# Get all keys as a list
|
# Get all keys as a list
|
||||||
filled_dict.keys() #=> ["three", "two", "one"] Note - Dictionary key ordering is not guaranteed. Your results might not match this exactly.
|
filled_dict.keys() #=> ["three", "two", "one"]
|
||||||
|
# Note - Dictionary key ordering is not guaranteed.
|
||||||
|
# Your results might not match this exactly.
|
||||||
|
|
||||||
# Get all values as a list
|
# Get all values as a list
|
||||||
filled_dict.values() #=> [3, 2, 1] Note - Same as above regarding key ordering.
|
filled_dict.values() #=> [3, 2, 1]
|
||||||
|
# Note - Same as above regarding key ordering.
|
||||||
|
|
||||||
# Check for existence of keys in a dictionary with in
|
# Check for existence of keys in a dictionary with in
|
||||||
"one" in filled_dict #=> True
|
"one" in filled_dict #=> True
|
||||||
@ -150,9 +159,9 @@ filled_set | other_set #=> set([1, 2, 3, 4, 5, 6])
|
|||||||
10 in filled_set #=> False
|
10 in filled_set #=> False
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------
|
####################################################
|
||||||
-- 3. Control Flow
|
## 3. Control Flow
|
||||||
----------------------------------------------------
|
####################################################
|
||||||
|
|
||||||
# Let's just make a variable
|
# Let's just make a variable
|
||||||
some_var = 5
|
some_var = 5
|
||||||
@ -175,7 +184,8 @@ prints:
|
|||||||
mouse is a mammal
|
mouse is a mammal
|
||||||
"""
|
"""
|
||||||
for animal in ["dog", "cat", "mouse"]:
|
for animal in ["dog", "cat", "mouse"]:
|
||||||
print "%s is a mammal" % animal # You can use % to interpolate formatted strings
|
# You can use % to interpolate formatted strings
|
||||||
|
print "%s is a mammal" % animal
|
||||||
|
|
||||||
"""
|
"""
|
||||||
While loops go until a condition is no longer met.
|
While loops go until a condition is no longer met.
|
||||||
@ -188,7 +198,7 @@ prints:
|
|||||||
x = 0
|
x = 0
|
||||||
while x < 4:
|
while x < 4:
|
||||||
print x
|
print x
|
||||||
x += 1 # Short hand for x = x + 1
|
x += 1 # Shorthand for x = x + 1
|
||||||
|
|
||||||
# Handle exceptions with a try/except block
|
# Handle exceptions with a try/except block
|
||||||
try:
|
try:
|
||||||
@ -197,9 +207,9 @@ except IndexError as e:
|
|||||||
pass # Pass is just a no-op. Usually you would do recovery here.
|
pass # Pass is just a no-op. Usually you would do recovery here.
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------
|
####################################################
|
||||||
-- 4. Functions
|
## 4. Functions
|
||||||
----------------------------------------------------
|
####################################################
|
||||||
|
|
||||||
# Use def to create new functions
|
# Use def to create new functions
|
||||||
def add(x, y):
|
def add(x, y):
|
||||||
@ -209,9 +219,9 @@ def add(x, y):
|
|||||||
# Calling functions with parameters
|
# Calling functions with parameters
|
||||||
add(5, 6) #=> 11 and prints out "x is 5 and y is 6"
|
add(5, 6) #=> 11 and prints out "x is 5 and y is 6"
|
||||||
# Another way to call functions is with keyword arguments
|
# Another way to call functions is with keyword arguments
|
||||||
add(y=6, x=5) # Equivalent to above. Keyword arguments can arrive in any order.
|
add(y=6, x=5) # Keyword arguments can arrive in any order.
|
||||||
|
|
||||||
# You can define functions that take a variable number of positional arguments
|
# You can define functions that take a variable number of arguments
|
||||||
def varargs(*args):
|
def varargs(*args):
|
||||||
return args
|
return args
|
||||||
|
|
||||||
@ -232,7 +242,6 @@ def create_adder(x):
|
|||||||
return x + y
|
return x + y
|
||||||
return adder
|
return adder
|
||||||
|
|
||||||
# Let's create a new function that always adds 10 to the argument
|
|
||||||
add_10 = create_adder(10):
|
add_10 = create_adder(10):
|
||||||
add_10(3) #=> 13
|
add_10(3) #=> 13
|
||||||
|
|
||||||
@ -247,15 +256,11 @@ filter(lambda x: x > 5, [3, 4, 5, 6, 7]) #=> [6, 7]
|
|||||||
[add_10(i) for i in [1, 2, 3]] #=> [11, 12, 13]
|
[add_10(i) for i in [1, 2, 3]] #=> [11, 12, 13]
|
||||||
[x for x in [3, 4, 5, 6, 7] if x > 5] #=> [6, 7]
|
[x for x in [3, 4, 5, 6, 7] if x > 5] #=> [6, 7]
|
||||||
|
|
||||||
----------------------------------------------------
|
####################################################
|
||||||
-- 5. Classes
|
## 5. Classes
|
||||||
----------------------------------------------------
|
####################################################
|
||||||
|
|
||||||
# We can define classes with the class statement
|
# We subclass from object to get a class.
|
||||||
class Human(): # By convention CamelCase is used for classes.
|
|
||||||
pass
|
|
||||||
|
|
||||||
# We subclass from object to get a "new-style class". All your code should do this.
|
|
||||||
class Human(object):
|
class Human(object):
|
||||||
|
|
||||||
# A class attribute. It is shared by all instances of this class
|
# A class attribute. It is shared by all instances of this class
|
||||||
@ -263,18 +268,20 @@ class Human(object):
|
|||||||
|
|
||||||
# Basic initializer
|
# Basic initializer
|
||||||
def __init__(self, name):
|
def __init__(self, name):
|
||||||
self.name = name # We are assigning the argument to the instance's name attribute
|
# Assign the argument to the instance's name attribute
|
||||||
|
self.name = name
|
||||||
|
|
||||||
# A method. All methods take self as the first argument, including the initializer
|
# A method. All methods take self as the first argument
|
||||||
def say(self, msg):
|
def say(self, msg):
|
||||||
return "%s: %s" % (self.name, msg)
|
return "%s: %s" % (self.name, msg)
|
||||||
|
|
||||||
# A class method is shared among all instances
|
# A class method is shared among all instances
|
||||||
|
# They are called with the calling class as the first argument
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_species(cls):
|
def get_species(cls):
|
||||||
return cls.species
|
return cls.species
|
||||||
|
|
||||||
# Static methods are called without a parameter reference to the class or instance
|
# Static methods are called without a class or instance reference
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def grunt():
|
def grunt():
|
||||||
return "*grunt*"
|
return "*grunt*"
|
||||||
@ -283,6 +290,7 @@ class Human(object):
|
|||||||
# Instantiate a class
|
# Instantiate a class
|
||||||
h = Human(name="Harry")
|
h = Human(name="Harry")
|
||||||
print h.say("hi") # prints out "Harry: hi"
|
print h.say("hi") # prints out "Harry: hi"
|
||||||
|
|
||||||
i = Human("Ian")
|
i = Human("Ian")
|
||||||
print i.say("hello") #prints out "Ian: hello"
|
print i.say("hello") #prints out "Ian: hello"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user