ParisgabrielStick to Handwriting day by day a decision hold on for a few years to dream for faith
Python ai from beginner to proficient
Iterator Iterator:
Must be an object in <> brackets
What is an iterator?
Iterators are tools that access an iterative object
An iterator is an object (instance) returned with the ITER (obj) function
Iterators can use the next (IT) function to get data for an iterative object
Iterator functions Iter and next
iter (iterable) returns an iterator from an iterative object, and Iterable must be an object that can provide an iterator
Next (iterator) gets the next record from the iterator iterator, triggering the stopiteration exception if the next record cannot be obtained
Description:
Iterators can only forward values , not back
Use the iter function to return an iterator to an iterative object
function:
The iterator object can get the next element with the next function.
Example:
L = [2, 3, 5, 7]
it = iter (l) # returns an iterator with an L object that can access L, an IT-bound iterator
Next (IT) # 2
Next (IT) # 3
Next (IT) # 5
Next (IT) # 7
Next (IT) # Stopiteration notifications (no data)
it = ITER (range (1, 10, 30))
Next (IT) # 1
Next (IT) # 4
Next (IT) # 7
Next (IT) # stopiteration
To access an iterator object with an iterator:
L = [2, 3, 5, 7] forXinchL:Print(x)Else: Print('End of Cycle') It= ITER (L)#get an iterator from L whileTrue:Try: x=Next (IT)Print(x)exceptstopiteration:Print("End of Cycle") Break
Generator Generator (Python 2.5 and later)
What is a generator?
A builder is an object that can provide data dynamically , and a generator object is also an iterative object (instance)
Dynamic is the active current generation of data
There are two types of generators:
1. Generator Functions
2. Generator Expressions
Definition of generator function
A function with a yield statement is a generator function, which is called to return a generator object
Yield translated into (generated or generated)
yield Statement
Grammar:
Yield expression
Description
Yield is used in the DEF function to use the Function Builder function
Yield is used to generate data for use by the next (IT) function of the iterator
Yield single-step generation data can be one or many within a function
Instance:
# This example shows how to generate a range of natural numbers with a generator function def Myinteger (n): I = 0 #< /span> natural number starting from 0 while i < n: yield I i += 1for x in myinteger (3 print (x)
Generator Function Description: The call to
Builder function returns a raw builder object , builder object Yes an iterator object
in the raw builder function call return will Triggers a stopiteration exception
Builder expression:
Syntax:
(expression for variable in iterate object [ If truth expression])
Description:
if clause can omit
effect:
Create with derivation a new builder
Example:
Gen = (x * * 2 F or x in range (1, 5))
it = iter (gen)
Next (IT) # 1
Next (IT) # 4
Next (IT) # 9
Next (it ) #
Next (IT) # stopiteration
Iteration tool function
The function of the iteration tool function is to generate a personalization Iteration Object
Function:
Zip (iter1[, iter2[, ...]) Returns a Zip object that is used to generate tuples , the number of which is determined by the smallest iteration object
Enumerate (iterable[, start]) generates an indexed enumeration object that returns the iteration type as an index-value pair (Index-value pair), the default index is zero-based, or it can be specified with the start
Example: Numbers= [10086, 10000, 10010, 9558] Names= ['China Mobile','China Telecom','China Unicom'] forTinchZip (numbers, names):Print(t) forX, yinchZip (numbers, names):Print(Y,'the customer service phone number is:', x) x, y= (10086,'China Mobile')#sequence Assignment
example of implementation of the ZIP function 2: def Myzip (Iter1, iter2): = ITER (Iter1) # takes out an iterator it2 = iter (iter2 )while True: = Next (it1) = Next (it2) yield (A, b) for in# can achieve the same function as Zip print(t)
Enumerate example: Names= ['China Mobile','China Telecom','China Unicom'] forTinchEnumerate (names):Print(t) enumerate implementation method schematic:defMyEnum (iterable): it=iter (iterable) I=0 whiletrue:a=Next (IT)yield(i, a) I+ = 1
byte strings and byte arrays
Byte string bytes (also called byte sequence)
Role:
storing data in bytes
A byte string is an immutable sequence of bytes
Bytes:
A byte is a unit of data that consists of 8 bits (bit) , which is the unit of data management for the computer.
Bytes are represented by integers in the range of 0 ~ 255 .
Create a literal value for an empty byte string
b = B '
B = B ""
B = B ""
B = B "" "" "" "
Create a literal value of a non-empty byte string
b = B ' ABCD '
b = B "ABCD"
b = B ' \x41\x42 '
The constructor of the byte string bytes
Bytes () Generates an empty byte string equivalent to B '
Bytes (Integer iteration object) # Initialize a byte string with an iterative object
Bytes (integer n) generates n byte strings with a value of 0
Bytes (string, encoding= ' utf-8 ') generates a byte string by converting it to an encoding
Example:
b = bytes () # b = B '
b = Bytes (range (+)) # b = B ' ABCD '
b = Bytes (5) # b = B ' \x00\x00\x00\x00\x00 '
b = Bytes (' ABC Chinese ') # b=b ' abc\xe4\xb8\xad\xe6\x96\x87 '
bytes 's operation:
+ += * *=
< <= > >= = = =!
In/not in
Indexes and slices
Len (x)
Max (x)
MIN (x)
SUM (x)
Any (x)
All (x)
The difference between bytes and str :
bytes Storage bytes (typically values in range (0, 256))
str stores Unicode characters (usually values in 0~65535)
Conversion of bytes and Str
encoding (encode)
str------------> bytes
b = S.encode (encoding= ' utf-8 ')
Decoding (decode)
Bytes----------> str
s = B.decode (encoding= ' utf-8 ')
byte array bytearray
variable sequence of bytes
constructor for byte array: ByteArray
ByteArray () Creates an empty byte array
ByteArray (integer) Initializes an array of bytes with an iterator object
ByteArray (integer iteration object) generates n byte array with a value of 0
ByteArray (String, encoding= ' utf-8 ') generates a byte array with the conversion encoding of the string
ByteArray's Operation:
+ += * *=
< <= > >= = = =!
In/not in
Indexes and slices
(Byte arrays support assignment of indexes and slices, rules are indexed and tile assignment rules are the same list)
Cases:
ba = ByteArray (b ' ABCDEfG ')
Ba[0] = 65
Ba[-2] = 70
ByteArray method of:
Ba.clear () empty
Ba.append (n) append one byte (n is an integer of 0~255)
Ba.remove (value) deletes the first occurrence of the byte and, if it does not, triggers a valueerror error
Ba.reverse () byte order reversal
Ba.decode (encoding= ' Utf-8 ') # decoded to a string
Ba.find (sub[, Start[,end]) # Find Sub
Practice:
There is a collection:
s = {' Tang monk ', ' Goku ', ' Eight commandments ', ' Sand Monk '}
Use the For statement to iterate through all the elements as follows:
For x in S:
Print (x)
Else
Print (' Traversal end ')
Please rewrite the For statement above to implement with the while statement and iterator
Practice:
Write a generator function Myeven (start, stop)
This function is used to generate a series of even numbers from start to end of Stop (not included) in the interval
Def myeven (Start, stop):
....
Evens = List (Myeven (10, 20))
Print (Evens) # [10, 12, 14, 16, 18]
For x in Myeven (21, 30):
Print (x) # 22, 24, 26, 28
L = [x**2 for x in Myeven (3, 10)]
Print (L) # 16 36 64
Practice:
Known to have a list L
L = [2, 3, 5, 7]
Use the generator expression to get the number from this list to generate the square of the data in the list
Gen = ... # This is implemented here with a builder expression
L2 = List (gen) # L2 = [4, 9, 25, 49]
Practice:
Write a program that reads the text of any line and ends the input when the input is empty
To print an input with a line number:
Such as:
Please enter: hello< carriage return >
Please enter: world< carriage return >
Please enter: tarena< carriage return >
Please enter: < Enter > # Direct Enter end input
The output is as follows:
Line 1th: Hello
Line 2nd: World
Line 3rd: Tarena
Practice:
Write a program, enter a string from the keyboard into the s variable
1. Convert this string to a byte string, bind with variable B and print out B
2. Print the length of the string s and the length of the byte string b
3. Convert the B-byte string to a string with the variable s2 binding to determine if S2 and s are the same?
Practice:
1. Write a generator function primes generate prime number,
This generator function is primes (begin, end)
For example: [x for X in primes (10, 20)] will get the list
[11, 13, 17, 19]
Answer:
defGET_SS (x):ifX <=0:returnFalse forIinchRange (2, x):ifX% i = =0:returnFalsereturnTruedefprimes (begin, end):ifBegin <= 2orEnd <= 2: Pass forXinchrange (begin, end):ifGET_SS (x):yieldXL= [x forXinchPrimes (10, 20)]PrintL
2. Write a generator function to generate the number of the first n of the Fibonacci sequence
1 1 2 3 5 8 13
def Fibonacci (N):
...
Yield ...
1) Output first 20 numbers:
For X in Fibonacci (20):
Print (x)
2) Print the first 40 numbers and:
Print (SUM (Fibonacci (40)))
Answer:
def Fibonacci (N): = [1, 1] for in Range (n): = l[x] + l[x + 1] l.append (s) return L Print (Fibonacci ()) Print (Sum (Fibonacci (40)))
3. Write program print Yang Hui triangle (print only 6 layers)
1
1 1
1 2 1
1 3 3 1
1 4 6) 4 1
1 5 10 10 5 1
Thinking:
L = [2, 3, 5, 7]
L2 = [x * * 2 for x in L] # list derivation
it = iter (L2)
Print (Next (IT) # 4
L[1] = 10
Print (Next (IT) # 9
L = [2, 3, 5, 7]
G3 = (x * * 2 for X in L) # Generator expression
it = iter (G3)
Print (Next (IT) # 4
L[1] = 10
Print (Next (IT) # 100
Parisgabriel:python Full Stack engineer (0 basics to Mastery) Tutorial 22nd (iterator, byte string)