Stanford Code in Place線上Python入門課程 - Week 4
Stanford Python程式課 - 第四週
第四週學習目標
|
| Code in Place 第四週課程 Lesson 10: Lists |
Lesson 10: List 清單
學習重點
- 創建、修改清單 List
- 以迴圈方式存取清單元素 Loop over List
Mutable vs Immutable when Passed as Parameters
- Mutable: variables act like they are copied
- Immutable: variables act lie their URL is copied
|
| Lesson 10 Lists: Mutable vs Immutable Variables |
YouTube課程影片
Lecture 10-1: Intro
Lecture 10-2: Using the console
Lecture 10-3: Lists
Lecture 10-4: List functions
Lecture 10-5: List looping
Lecture 10-6: List as params
Lecture 10-7: Average scores
點我下載課程講義
延伸閱讀Python Reader
點我到 List 課程程式範例
Lesson 11: Text 文字
文字處理有很多令人驚訝的用途,例如研究人員跟醫生發現人類的基因組測序 (DNA sequence) 的問題可以將 DNA 當成字串來運算處理!
課程介紹的真實應用案例是非洲迦納的程式設計工程師 mPedigree 公司,利用手機簡訊回傳藥品包裝上的字串,透過金鑰確認是否為真藥或偽藥的問題,Python程式範例在文章最後。
![]() |
| Code in Place 範例:mPedigree 公司利用字串簡訊解決偽藥問題 |
學習重點
- 了解Python的字串
- 字串是 immutable
- 以迴圈處理字串、創建新字串
YouTube課程影片
Lecture 11-1: Introduction
Lecture 11-2: Revisiting Strings
Lecture 11-3: Immutability
Lecture 11-4: String Functions
Lecture 11-5: String Processing
Lecture 11-6: mPedigree Goldenkeys
點我下載課程講義
延伸閱讀Python Reader
點我到Text 程式範例
未完待續 ...
List 程式範例
listexamples.py
"""
File: listexamples.py
---------------------
This program contains examples of using different functionality of
lists to show how you can do different list operations.
"""
def access_list_elements():
"""
Shows an example of accessing individual elements in a list
as well as overwriting a value.
"""
num_list = [10, 20, 30, 40, 50]
print('num_list =', num_list)
print('num_list[0] =', num_list[0])
print('num_list[1] =', num_list[1])
print('Setting num_list[0] to 15')
num_list[0] = 15
print('num_list =', num_list)
def print_individual_list_elements():
"""
Shows an example of using a for-loop with range to iterate
through the elements of a list.
"""
letters = ['a', 'b', 'c', 'd', 'e']
print('letters =', letters)
print('length of letters =', len(letters))
for i in range(len(letters)):
print(i, "->", letters[i])
def appending_elements():
"""
Shows two examples of using appending elements onto lists.
"""
alist = [10, 20, 30]
print('alist =', alist)
print('Appending 40 to alist')
alist.append(40)
print('Appending 50 to alist')
alist.append(50)
print('alist =', alist)
new_list = []
print('new_list =', new_list)
print('Appending a to new_list')
new_list.append('a')
print('Appending 4.3 to new_list')
new_list.append(4.3)
print('new_list =', new_list)
def popping_elements():
"""
Shows an example of popping elements off a list.
"""
alist = [10, 20, 30, 40, 50]
print('alist =', alist)
x = alist.pop()
print('popped element from alist, got', x)
print('alist =', alist)
x = alist.pop()
print('popped element from alist, got', x)
print('alist =', alist)
x = alist.pop()
print('popped element from alist, got', x)
print('alist =', alist)
x = alist.pop()
print('popped element from alist, got', x)
print('alist =', alist)
x = alist.pop()
print('popped element from alist, got', x)
print('alist =', alist)
def look_up_elements():
"""
Shows an example of using 'in' to check if a value is contained in
a list.
"""
str_list = ['Ruth', 'John', 'Sonia']
print('str_list =', str_list)
if 'Sonia' in str_list:
print('Sonia is in str_list')
def for_each_loop():
"""
Shows an example of using a for-each loop with a list.
"""
str_list = ['Ruth', 'John', 'Sonia']
for elem in str_list:
print(elem)
def main():
"""
We call a number of different functions that show the results
of different list operations to show examples of how they work.
"""
access_list_elements()
print_individual_list_elements()
appending_elements()
popping_elements()
look_up_elements()
for_each_loop()
if __name__ == '__main__':
main()
listparameter.py
"""
File: listparameter.py
---------------------
This program contains examples of using lists as parameters,
especially in different type of for loops.
"""
def add_five_buggy(alist):
"""
Attempts to add 5 to all the elements in the list.
BUGGY CODE! Does not actually add 5 to the list elements
if values are primitive type (like int or float), since
value would just be a local copy of such variables.
"""
for value in alist:
value += 5
def add_five_working(alist):
"""
Successfully adds 5 to all the elements in the list.
Changes made to the list persist after this function ends
since we are changing actual values in the list.
"""
for i in range(len(alist)):
alist[i] += 5
def create_new_list(alist):
"""
Shows an example of what happens when you create a new list
that has the same name as a parameter in a function. After
you create the new list, you are no longer referring to the
parameter "alist" that was passed in
"""
# This "alist" is referring to the parameter "alist"
alist.append(9)
# Creating a new "alist". This is not the same as the parameter
# passed in. After this line references to "alist" are no longer
# referring to the parameter "alist" that was passed in.
alist = [1, 2, 3]
def main():
values = [5, 6, 7, 8]
print('values =', values)
add_five_buggy(values)
print('values =', values)
add_five_working(values)
print('values =', values)
values = [5, 6, 7, 8]
create_new_list(values)
print('values =', values)
if __name__ == '__main__':
main()
averagescores.py
"""
File: averagescores.py
----------------------
This program reads score values from a user and computes their
average. It also adds extra credit to all the scores and computes
the new average.
"""
EXTRA_CREDIT = 5
def get_scores():
"""
Asks the user for a list of scores (numbers).
Returns a list containing the scores
"""
score_list = []
while True:
score = float(input("Enter score (0 to stop): "))
if score == 0:
break
score_list.append(score)
return score_list
def compute_average(score_list):
"""
Returns the average value of the list of scores passed in.
"""
num_scores = len(score_list)
total = sum(score_list)
return total / num_scores
def give_extra_credit(score_list, extra_credit_value):
"""
Adds extra_credit_value to all the values in score_list.
"""
for i in range(len(score_list)):
score_list[i] += extra_credit_value
def print_list(alist):
"""
Prints all the values in the list passed in
"""
for value in alist:
print(value)
def main():
"""
Computes average for a set of scores entered by the user.
Then adds extra credit to scores and recomputes average.
"""
scores = get_scores()
print("Scores are:")
print_list(scores)
avg = compute_average(scores)
print('Average score is', avg)
print('Adding extra credit:', EXTRA_CREDIT, "points")
give_extra_credit(scores, EXTRA_CREDIT)
print("New scores are:")
print_list(scores)
avg = compute_average(scores)
print('New average is', avg)
if __name__ == '__main__':
main()
Text 程式範例
goldkeys.py:
import random N_LABELS = 5000 def main(): for i in range(N_LABELS): rand_part = pad(random.randint(0, 99999), 5) unique_part = pad(i, 4) id = rand_part + unique_part print(id) def pad(num, length): """ >>> pad(42, 4) '0042' >>> pad(100, 3) '100' """ num_string = str(num) while len(num_string) < length: # insert a 0 at the start of the string, increasing its length by one num_string = "0" + num_string return num_string if __name__ == "__main__": main()
史丹佛
程式語言
資訊工程
Code in Place
Computer Science
CS 106A
immutable
list
mutable
Python
Stanford
string
Tech
text






0 comments