This article mainly introduces some programming skills for beginners of Python, all of which are based on some basic programming habits and suggestions. For more information, see
Exchange variable
x = 6y = 5 x, y = y, x print x>>> 5print y>>> 6
If statement in line
print "Hello" if True else "World">>> Hello
Connection
The last method below seems cool when binding two different types of objects.
nfc = ["Packers", "49ers"]afc = ["Ravens", "Patriots"]print nfc + afc>>> ['Packers', '49ers', 'Ravens', 'Patriots'] print str(1) + " world">>> 1 world print `1` + " world">>> 1 world print 1, "world">>> 1 worldprint nfc, 1>>> ['Packers', '49ers'] 1
Digital skills
# Print 5.0/2> 2 # print 2 ** 5> 32
Pay attention to the division of floating point numbers.
print .3/.1>>> 2.9999999999999996print .3//.1>>> 2.0
Numerical comparison
This is a simple method that is rare in many languages.
x = 2if 3 > x > 1: print x>>> 2if 1 < x > 0: print x>>> 2
Iterate two lists at the same time
nfc = ["Packers", "49ers"]afc = ["Ravens", "Patriots"]for teama, teamb in zip(nfc, afc): print teama + " vs. " + teamb>>> Packers vs. Ravens>>> 49ers vs. Patriots
List iteration with index
teams = ["Packers", "49ers", "Ravens", "Patriots"]for index, team in enumerate(teams): print index, team>>> 0 Packers>>> 1 49ers>>> 2 Ravens>>> 3 Patriots
List derivation
If a list is known, we can select the even list method:
numbers = [1,2,3,4,5,6]even = []for number in numbers: if number%2 == 0: even.append(number)
The conversion is as follows:
numbers = [1,2,3,4,5,6]even = [number for number in numbers if number%2 == 0]
Is it awesome? haha.
Dictionary derivation
Similar to list derivation, dictionaries can do the same job:
teams = ["Packers", "49ers", "Ravens", "Patriots"]print {key: value for value, key in enumerate(teams)}>>> {'49ers': 1, 'Ravens': 2, 'Patriots': 3, 'Packers': 0}
Value of the initialization list
items = [0]*3print items>>> [0,0,0]
Convert list to string
teams = ["Packers", "49ers", "Ravens", "Patriots"]print ", ".join(teams)>>> 'Packers, 49ers, Ravens, Patriots'
Retrieve element from dictionary
I admit that the try/try T code is not elegant, but here is a simple method to try to find the key in the dictionary. if the corresponding alue is not found, the second parameter is set to its variable value.
data = {'user': 1, 'name': 'Max', 'three': 4}try: is_admin = data['admin']except KeyError: is_admin = False1
The replacement is as follows:
data = {'user': 1, 'name': 'Max', 'three': 4}is_admin = data.get('admin', False)
Obtains a subset of a list.
Sometimes, you only need some elements in the list. Here are some methods to obtain the list subset.
X = [1, 2, 3, 4, 5, 6] # The first three print x [: 3] >>> [1, 2, 3] # four middle print x [] >>> [,] # The last three print x [-3:] >>>>, 6] # print x [: 2] >>> [1, 3, 5] # print x [1: 2] >>>> [2, 4, 6]
Fix FizzBuzz with 60 characters
Some time ago, Jeff Atwood promoted a simple programming exercise called FizzBuzz. The problem is referenced as follows:
Write a program, print the numbers 1 to, and print "Fizz" in multiples of 3 to replace this number, and print "Buzz" in multiples of 5 ", print "FizzBuzz" for numbers that are multiples of 3 and multiples of 5 ".
Here is a short and interesting way to solve this problem:
for x in range(101):print"fizz"[x%3*4::]+"buzz"[x%5*4::]or x
Set
In addition to the built-in python data types, the collection module also includes some special use cases, and Counter is very useful in some cases. If you have been to Facebook HackerCup for the past year, you can even find something useful.
from collections import Counterprint Counter("hello")>>> Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1})
Iteration tools
Like the collections Library, there is also a library called itertools, which can effectively solve some problems. One use case is to find all combinations, which can tell you all the combinations of elements in a group that cannot be combined.
from itertools import combinationsteams = ["Packers", "49ers", "Ravens", "Patriots"]for game in combinations(teams, 2): print game>>> ('Packers', '49ers')>>> ('Packers', 'Ravens')>>> ('Packers', 'Patriots')>>> ('49ers', 'Ravens')>>> ('49ers', 'Patriots')>>> ('Ravens', 'Patriots')
False = True
This is a very interesting thing than practical technology. in python, True and False are global variables, so:
False = Trueif False: print "Hello"else: print "World">>> Hello