Python không đúng nếu câu lệnh
Các câu lệnh được giới thiệu trong chương này sẽ liên quan đến các bài kiểm tra hoặc điều kiện. Cú pháp khác cho các điều kiện sẽ được giới thiệu sau, nhưng bây giờ hãy xem xét các phép so sánh số học đơn giản dịch trực tiếp từ toán học sang Python. Hãy thử từng dòng riêng biệt trong Shell Show
2 < 5 3 > 7 x = 11 x > 10 2 * x < x type(True) Bạn thấy rằng các điều kiện là 'a' > 51 hoặc 'a' > 52. Đây là những giá trị Boolean duy nhất có thể (được đặt tên theo nhà toán học thế kỷ 19 George Boole). Trong Python, tên Boolean được rút ngắn thành loại 'a' > 53. Đó là loại kết quả của các điều kiện hoặc phép thử đúng sai Ghi chú Các giá trị Boolean 'a' > 51 và 'a' > 52 không có dấu ngoặc kép xung quanh chúng. Cũng giống như 'a' > 56 là một chuỗi và 'a' > 57 không có dấu ngoặc kép thì không, 'a' > 58 là một chuỗi, không phải kiểu bool 3. 1. 2. Đơn giản 'a' > 5 9 câu lệnhChạy chương trình ví dụ này, vali. py. Hãy thử ít nhất hai lần, với đầu vào. 30 rồi 55. Như bạn thấy, bạn nhận được một kết quả bổ sung, tùy thuộc vào đầu vào. Mã chính là weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.") Hai dòng ở giữa là một câu lệnh 'a' > 59. Nó đọc khá giống tiếng Anh. Nếu đúng là trọng lượng lớn hơn 50 thì in ra câu lệnh tính thêm phí. Nếu không đúng trọng số lớn hơn 50 thì không làm phần thụt. bỏ qua việc in thêm phí hành lý. Trong bất kỳ trường hợp nào, khi bạn đã hoàn thành câu lệnh 'a' > 59 (dù nó có thực sự làm gì hay không), hãy chuyển sang câu lệnh tiếp theo không được thụt vào bên dưới câu lệnh 'a' > 59. Trong trường hợp này đó là câu lệnh in “Thank you” Cú pháp Python chung cho một câu lệnh 'a' > 59 đơn giản là 'a' > 59 điều kiệndef calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''5 Nếu điều kiện là đúng, thì hãy thực hiện các câu lệnh thụt lề. Nếu điều kiện không đúng thì bỏ qua các câu lệnh thụt lề Một đoạn khác làm ví dụ if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer Cũng như các loại câu lệnh khác có tiêu đề và khối thụt vào, khối có thể có nhiều hơn một câu lệnh. Giả định trong ví dụ trên là nếu một tài khoản bị âm, nó sẽ được đưa về 0 bằng cách chuyển tiền từ tài khoản dự phòng theo một số bước Trong các ví dụ trên, sự lựa chọn là giữa làm gì đó (nếu điều kiện là _______1_______1) hoặc không làm gì (nếu điều kiện là _______1_______2). Thường có hai lựa chọn, chỉ một trong số đó sẽ được thực hiện, tùy thuộc vào sự thật của một điều kiện 3. 1. 3. 'a' > 5 9-def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. ''' 9 Báo cáoChạy chương trình ví dụ, def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. ''' if totalHours <= 40: totalWages = hourlyWage*totalHours else: overtime = totalHours - 40 totalWages = hourlyWage*40 + (1.5*hourlyWage)*overtime return totalWages def main(): hours = float(input('Enter hours worked: ')) wage = float(input('Enter dollars paid per hour: ')) total = calcWeeklyWages(hours, wage) print('Wages for {hours} hours at ${wage:.2f} per hour are ${total:.2f}.' .format(**locals())) main()0. Hãy thử ít nhất hai lần, với đầu vào 50 và sau đó là 80. Như bạn có thể thấy, bạn nhận được các kết quả khác nhau, tùy thuộc vào đầu vào. Mã chính của def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. ''' if totalHours <= 40: totalWages = hourlyWage*totalHours else: overtime = totalHours - 40 totalWages = hourlyWage*40 + (1.5*hourlyWage)*overtime return totalWages def main(): hours = float(input('Enter hours worked: ')) wage = float(input('Enter dollars paid per hour: ')) total = calcWeeklyWages(hours, wage) print('Wages for {hours} hours at ${wage:.2f} per hour are ${total:.2f}.' .format(**locals())) main()0 là temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.') Bốn dòng ở giữa là câu lệnh if-else. Một lần nữa, nó gần với tiếng Anh, mặc dù bạn có thể nói “otherwise” thay vì “else” (nhưng other thì ngắn hơn. ). Có hai khối thụt vào. Một, giống như trong câu lệnh 'a' > 59 đơn giản, xuất hiện ngay sau tiêu đề 'a' > 59 và được thực hiện khi điều kiện trong tiêu đề 'a' > 59 là đúng. Trong biểu mẫu 'a' > 59- def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9, theo sau nó là một dòng def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. ''' if totalHours <= 40: totalWages = hourlyWage*totalHours else: overtime = totalHours - 40 totalWages = hourlyWage*40 + (1.5*hourlyWage)*overtime return totalWages def main(): hours = float(input('Enter hours worked: ')) wage = float(input('Enter dollars paid per hour: ')) total = calcWeeklyWages(hours, wage) print('Wages for {hours} hours at ${wage:.2f} per hour are ${total:.2f}.' .format(**locals())) main()7, tiếp theo là một khối thụt vào khác chỉ được thực hiện khi điều kiện ban đầu là sai. Trong một câu lệnh 'a' > 59-_______16_______9, chính xác một trong hai khối thụt lề có thể được thực thi Một dòng cũng được hiển thị thụt vào bên cạnh, loại bỏ thụt lề, về việc tập thể dục. Vì nó được đánh dấu, nên nó không phải là một phần của câu lệnh if-else. Vì số lượng thụt đầu dòng của nó khớp với tiêu đề 'a' > 59, nên nó luôn được thực hiện trong luồng câu lệnh chuyển tiếp thông thường, sau câu lệnh 'a' > 59- def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9 (bất kỳ khối nào được chọn) Cú pháp chung của Python 'a' > 59- def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9 là 'a' > 59 điều kiện Các khối câu lệnh này có thể có bất kỳ số lượng câu lệnh nào và có thể bao gồm bất kỳ loại câu lệnh nào Thấy 3. 1. 4. Biểu thức điều kiện khácTất cả các so sánh số học thông thường có thể được thực hiện, nhưng nhiều phép so sánh không sử dụng ký hiệu toán học tiêu chuẩn, chủ yếu là do thiếu các phím thích hợp trên bàn phím tiêu chuẩn MeaningMath SymbolPython SymbolsLess than<if totalHours <= 40: regularHours = totalHours overtime = 0 else: overtime = totalHours - 40 regularHours = 40 return hourlyWage*regularHours + (1.5*hourlyWage)*overtime7Greater than> if totalHours <= 40: regularHours = totalHours overtime = 0 else: overtime = totalHours - 40 regularHours = 40 return hourlyWage*regularHours + (1.5*hourlyWage)*overtime8Less than or equal≤ if totalHours <= 40: regularHours = totalHours overtime = 0 else: overtime = totalHours - 40 regularHours = 40 return hourlyWage*regularHours + (1.5*hourlyWage)*overtime9Greater than or equal≥ >>> vals = ['this', 'is', 'it] >>> 'is' in vals True >>> 'was' in vals False0Equals= >>> vals = ['this', 'is', 'it] >>> 'is' in vals True >>> 'was' in vals False1Not equal≠ >>> vals = ['this', 'is', 'it] >>> 'is' in vals True >>> 'was' in vals False2 Không được có khoảng cách giữa các ký tự thay thế bằng hai ký hiệu Python Lưu ý rằng sự lựa chọn rõ ràng cho dấu bằng, một dấu bằng duy nhất, không được sử dụng để kiểm tra sự bằng nhau. Một dấu bằng thứ hai khó chịu là bắt buộc. Điều này là do dấu bằng duy nhất đã được sử dụng để gán trong Python, vì vậy nó không có sẵn cho các bài kiểm tra Cảnh báo Một lỗi phổ biến là chỉ sử dụng một dấu bằng khi bạn muốn kiểm tra sự bằng nhau và không thực hiện phép gán Các bài kiểm tra về đẳng thức không thực hiện phép gán và chúng không yêu cầu một biến ở bên trái. Bất kỳ biểu thức nào cũng có thể được kiểm tra về đẳng thức hoặc bất đẳng thức ( >>> vals = ['this', 'is', 'it] >>> 'is' in vals True >>> 'was' in vals False2). Chúng không cần phải là số. Dự đoán kết quả và thử từng dòng trong Shell x = 5 x x == 5 x == 6 x x != 6 x = 6 6 == x 6 != x 'hi' == 'h' + 'i' 'HI' != 'hi' [1, 2] != [2, 1] Một kiểm tra bình đẳng không thực hiện một bài tập. Các chuỗi có phân biệt chữ hoa chữ thường. Thứ tự các vấn đề trong một danh sách Thử trong Shell 'a' > 5 Khi so sánh không có ý nghĩa, một ngoại lệ được gây ra. Theo dõi cuộc thảo luận về tính không chính xác của số học float trong , xác nhận rằng Python không xem xét. 1 +. 2 bằng. 3. Viết một điều kiện đơn giản vào Shell để kiểm tra Đây là một ví dụ khác. Trả tiền làm thêm giờ. Cho biết số giờ làm việc của một người trong tuần và tiền lương theo giờ thông thường, hãy tính tổng tiền lương trong tuần, có tính đến thời gian làm thêm giờ. Số giờ làm việc trên 40 là làm thêm giờ, được trả lương 1. gấp 5 lần mức bình thường. Đây là một vị trí tự nhiên cho một chức năng kèm theo tính toán Đọc thiết lập cho chức năng def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. ''' Bài toán chỉ rõ hai trường hợp. khi làm việc không quá 40 giờ hoặc khi làm việc hơn 40 giờ. Trong trường hợp làm việc hơn 40 giờ, sẽ thuận tiện khi giới thiệu giờ làm thêm giờ thay đổi. Bạn được khuyến khích suy nghĩ về một giải pháp trước khi tiếp tục và kiểm tra giải pháp của tôi Bạn có thể thử chạy chương trình ví dụ hoàn chỉnh của tôi, tiền lương. py, cũng được hiển thị bên dưới. Thao tác định dạng ở cuối hàm chính sử dụng định dạng dấu phẩy động () để hiển thị hai vị trí thập phân cho xu trong câu trả lời def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. ''' if totalHours <= 40: totalWages = hourlyWage*totalHours else: overtime = totalHours - 40 totalWages = hourlyWage*40 + (1.5*hourlyWage)*overtime return totalWages def main(): hours = float(input('Enter hours worked: ')) wage = float(input('Enter dollars paid per hour: ')) total = calcWeeklyWages(hours, wage) print('Wages for {hours} hours at ${wage:.2f} per hour are ${total:.2f}.' .format(**locals())) main() Ở đây, đầu vào được dự định là số, nhưng nó có thể là số thập phân nên việc chuyển đổi từ chuỗi thông qua >>> vals = ['this', 'is', 'it] >>> 'is' in vals True >>> 'was' in vals False4, không phải >>> vals = ['this', 'is', 'it] >>> 'is' in vals True >>> 'was' in vals False5 Dưới đây là phiên bản thay thế tương đương của phần thân của >>> vals = ['this', 'is', 'it] >>> 'is' in vals True >>> 'was' in vals False6, được sử dụng trong >>> vals = ['this', 'is', 'it] >>> 'is' in vals True >>> 'was' in vals False7. Nó chỉ sử dụng một công thức tính toán chung và thiết lập các tham số cho công thức trong câu lệnh 'a' > 59. Nhìn chung, có một số cách bạn có thể giải quyết cùng một vấn đề if totalHours <= 40: regularHours = totalHours overtime = 0 else: overtime = totalHours - 40 regularHours = 40 return hourlyWage*regularHours + (1.5*hourlyWage)*overtimeToán tử boolean >>> vals = ['this', 'is', 'it] >>> 'is' in vals True >>> 'was' in vals False9 Ngoài ra còn có các toán tử Boolean được áp dụng cho các loại khác ngoài số. Một toán tử Boolean hữu ích là >>> vals = ['this', 'is', 'it] >>> 'is' in vals True >>> 'was' in vals False9, kiểm tra tư cách thành viên theo trình tự >>> vals = ['this', 'is', 'it] >>> 'is' in vals True >>> 'was' in vals False Nó cũng có thể được sử dụng với weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")01, như weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")02, có nghĩa ngược lại weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")0 Nói chung hai phiên bản là
Phát hiện sự cần thiết của câu lệnh 'a' > 59. Giống như với các chương trình lập kế hoạch cần các câu lệnh``for``, bạn muốn có thể dịch các mô tả vấn đề bằng tiếng Anh mà đương nhiên sẽ bao gồm các câu lệnh 'a' > 59 hoặc 'a' > 59- def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9. Một số từ hoặc cụm từ hoặc ý tưởng gợi ý việc sử dụng các câu này là gì? . 3. 1. 4. 1. bài tập tốt nghiệpViết chương trình, weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")09, nhắc học sinh biết họ có bao nhiêu tín chỉ. In xem họ có đủ tín chỉ để tốt nghiệp hay không. (Tại Đại học Loyola Chicago, cần 120 tín chỉ để tốt nghiệp. ) 3. 1. 4. 2. Bài tập đầu hoặc đuôiViết chương trình weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")10. Nó nên bao gồm một chức năng weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")11, mô phỏng một lần tung đồng xu. Nó in ngẫu nhiên hoặc là weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")12 hoặc là weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")13. Thực hiện điều này bằng cách chọn 0 hoặc 1 tùy ý với weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")14, và sử dụng câu lệnh 'a' > 59-_______16_______9 để in ra weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")12 khi kết quả là 0, và ngược lại là weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")13 Trong chương trình chính của bạn có một vòng lặp lặp lại đơn giản gọi weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")11 10 lần để kiểm tra nó, vì vậy bạn tạo một chuỗi ngẫu nhiên gồm 10 weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")12 và weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")13 3. 1. 4. 3. Bài tập chức năng lạLưu chương trình ví dụ weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")22 thành weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")23 và hoàn thành các định nghĩa về hàm weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")24 và weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")25 như được mô tả trong chuỗi tài liệu hàm trong chương trình. Trong định nghĩa hàm weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")24, hãy sử dụng câu lệnh 'a' > 59- def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9 (gợi ý). Trong định nghĩa hàm weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")25, hãy sử dụng một vòng lặp weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")30, hàm phạm vi và hàm nhảy Hàm weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")24 được giới thiệu để sử dụng trong và các hàm khác sau đó 3. 1. 5. Nhiều bài kiểm tra và câu nói 'a' > 5 9- weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.") 33Thường thì bạn muốn phân biệt giữa nhiều hơn hai trường hợp riêng biệt, nhưng điều kiện chỉ có hai kết quả có thể xảy ra, 'a' > 51 hoặc 'a' > 52, vì vậy lựa chọn trực tiếp duy nhất là giữa hai lựa chọn. Như bất kỳ ai đã từng chơi “20 câu hỏi” đều biết, bạn có thể phân biệt nhiều trường hợp hơn bằng các câu hỏi tiếp theo. Nếu có nhiều hơn hai lựa chọn, một phép thử đơn lẻ có thể chỉ làm giảm các khả năng, nhưng các phép thử tiếp theo có thể làm giảm các khả năng ngày càng nhiều hơn. Vì hầu hết mọi loại câu lệnh đều có thể được đặt trong một khối câu lệnh thụt vào, nên một lựa chọn là một câu lệnh 'a' > 59 tiếp theo. Chẳng hạn, hãy xem xét một hàm để chuyển đổi điểm số thành điểm chữ cái, 'A', 'B', 'C', 'D' hoặc 'F', trong đó các điểm cắt cho 'A', 'B', 'C' . Một cách để viết hàm sẽ là kiểm tra từng lớp một và giải quyết tất cả các khả năng còn lại bên trong mệnh đề def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9 tiếp theo weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")1 Việc thụt đầu dòng tăng dần liên tục này với câu lệnh 'a' > 59 vì khối def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9 có thể gây khó chịu và mất tập trung. Một giải pháp thay thế ưu tiên trong tình huống này, để tránh tất cả sự thụt đầu dòng này, là kết hợp mỗi khối def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9 và 'a' > 59 thành một khối weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")33 weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")2 Cú pháp phức tạp nhất cho một câu lệnh 'a' > 59- weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")33- def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9 được chỉ ra một cách tổng quát bên dưới 'a' > 59 điều kiện1def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''5 Các dòng 'a' > 59, mỗi dòng weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")33 và dòng cuối cùng def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9 đều thẳng hàng. Có thể có bất kỳ số lượng weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")33 dòng nào, mỗi dòng theo sau là một khối thụt vào. (Ba tình cờ được minh họa ở trên. ) Với cấu trúc này, chính xác một trong các khối thụt lề được thực thi. Nó là khối tương ứng với điều kiện 'a' > 51 đầu tiên, hoặc, nếu tất cả các điều kiện là 'a' > 52, thì nó là khối sau dòng cuối cùng def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9 Cẩn thận với cơn co thắt kỳ lạ của Python. Đó là weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")33, không phải weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")63. Một chương trình kiểm tra chức năng letterGrade trong chương trình ví dụ weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")64 Thấy Phương án thay thế cuối cùng cho câu lệnh 'a' > 59. 'a' > 59- weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")33-. không có def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9. Điều này có nghĩa là thay đổi cú pháp cho 'a' > 59- weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")33- def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9 ở trên để phần cuối cùng của def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. ''' if totalHours <= 40: totalWages = hourlyWage*totalHours else: overtime = totalHours - 40 totalWages = hourlyWage*40 + (1.5*hourlyWage)*overtime return totalWages def main(): hours = float(input('Enter hours worked: ')) wage = float(input('Enter dollars paid per hour: ')) total = calcWeeklyWages(hours, wage) print('Wages for {hours} hours at ${wage:.2f} per hour are ${total:.2f}.' .format(**locals())) main()7 và khối sau nó sẽ bị bỏ qua. Nó tương tự như câu lệnh cơ bản 'a' > 59 không có def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9, ở chỗ không có khối thụt lề nào có thể được thực thi. Điều này xảy ra nếu không có điều kiện nào trong các bài kiểm tra là đúng Với một def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9 được bao gồm, chính xác một trong các khối thụt lề được thực thi. Không có def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9, nhiều nhất một trong các khối thụt lề được thực thi weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")3 Câu lệnh 'a' > 59- weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")33 này chỉ in một dòng nếu trọng lượng của vali có vấn đề 3. 1. 5. 1. ký tập thể dụcViết chương trình weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")79 để hỏi người dùng một số. In ra số đó thuộc danh mục nào. weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")80, weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")81, hoặc weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")82 3. 1. 5. 2. lớp tập thể dụcỞ chế độ Chờ, tải weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")64 và lưu dưới dạng weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")84 Sửa đổi weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")84 để nó có phiên bản tương đương của hàm letterGrade kiểm tra theo thứ tự ngược lại, đầu tiên là F, sau đó là D, C,. Gợi ý. Bạn cần làm bao nhiêu xét nghiệm? Đảm bảo chạy phiên bản mới của bạn và thử nghiệm với các đầu vào khác nhau để kiểm tra tất cả các đường dẫn khác nhau thông qua chương trình. Hãy cẩn thận để kiểm tra xung quanh các điểm giới hạn. điểm 79 là gì. 6 ngụ ý? 3. 1. 5. 3. tiền lương tập thể dục* Sửa đổi ví dụ về weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")86 hoặc >>> vals = ['this', 'is', 'it] >>> 'is' in vals True >>> 'was' in vals False7 để tạo một chương trình weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")88 giả định rằng mọi người được trả gấp đôi thời gian cho số giờ trên 60. Do đó, họ được trả nhiều nhất là 20 giờ làm thêm vào lúc 1. gấp 5 lần mức bình thường. Ví dụ: một người làm việc 65 giờ với mức lương thông thường là 10 đô la một giờ sẽ làm việc ở mức 10 đô la một giờ trong 40 giờ, lúc 1. 5 * $10 cho 20 giờ làm thêm giờ và 2 * $10 cho 5 giờ làm gấp đôi, tổng cộng là
Bạn có thể thấy >>> vals = ['this', 'is', 'it] >>> 'is' in vals True >>> 'was' in vals False7 dễ thích nghi hơn weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")86 Đảm bảo kiểm tra tất cả các đường dẫn thông qua chương trình. Chương trình của bạn có thể là một bản sửa đổi của chương trình mà một số lựa chọn đã hoạt động trước đó, nhưng khi bạn thay đổi mọi thứ, hãy kiểm tra lại tất cả các trường hợp. Những thay đổi có thể làm rối tung những thứ đã hoạt động trước đây 3. 1. 6. Nesting Control-Flow StatementsSức mạnh của một ngôn ngữ như Python phần lớn đến từ nhiều cách kết hợp các câu lệnh cơ bản. Đặc biệt, các câu lệnh weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")30 và 'a' > 59 có thể được lồng vào bên trong các khối thụt lề của nhau. Ví dụ: giả sử bạn chỉ muốn in số dương các số từ một danh sách các số tùy ý trong một hàm có tiêu đề sau. Đọc các mảnh cho bây giờ weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")4 Ví dụ: giả sử weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")93 là weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")94. Bạn muốn xử lý một danh sách, do đó gợi ý một vòng lặp weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")30 mỗi vòng, weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")5 nhưng một vòng lặp weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")30-mỗi chạy cùng một nội dung mã cho từng phần tử của danh sách và chúng tôi chỉ muốn weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")6 cho một số người trong số họ. Điều đó có vẻ như là một trở ngại lớn, nhưng hãy suy nghĩ kỹ hơn về những gì cần phải xảy ra một cách cụ thể. Là một con người, người có đôi mắt tinh tường, bạn sẽ ngay lập tức bị thu hút bởi những con số thực sự chính xác, 3, 2 và 7, nhưng rõ ràng một chiếc máy tính làm việc này một cách có hệ thống sẽ phải kiểm tra từng con số. Trên thực tế, cần có một hành động nhất quán. Mỗi số phải được kiểm tra để xem nó có nên được in không. Điều này gợi ý một tuyên bố 'a' > 59, với điều kiện weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")98. Hãy thử tải vào Idle và chạy chương trình ví dụ weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")99, có mã được hiển thị bên dưới. Nó kết thúc bằng một dòng kiểm tra chức năng weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")7 Ý tưởng lồng các câu lệnh 'a' > 59 này mở rộng rất nhiều khả năng với các vòng lặp. Giờ đây, những việc khác nhau có thể được thực hiện vào những thời điểm khác nhau trong các vòng lặp, miễn là có một thử nghiệm nhất quán để cho phép lựa chọn giữa các phương án. Ngay sau đó, các vòng lặp if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer01 cũng sẽ được giới thiệu và bạn cũng sẽ thấy các câu lệnh 'a' > 59 được lồng bên trong chúng. Phần còn lại của phần này đề cập đến các ví dụ đồ họa Chạy chương trình ví dụ if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer03. Nó có một quả bóng màu đỏ di chuyển và nảy xiên ra khỏi các cạnh. Nếu bạn xem nhiều lần, bạn sẽ thấy nó bắt đầu từ các vị trí ngẫu nhiên. Ngoài ra, bạn có thể lặp lại chương trình từ dấu nhắc Shell sau khi bạn đã chạy tập lệnh. Chẳng hạn, ngay sau khi chạy chương trình, hãy thử trong Shell weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")8 Các tham số cho biết số lượng hình dạng di chuyển trong mỗi bước hoạt ảnh. Bạn có thể thử các giá trị khác trong Shell, tốt nhất là với cường độ nhỏ hơn 10 Đối với phần còn lại của mô tả về ví dụ này, hãy đọc các đoạn văn bản được trích xuất Các hoạt ảnh trước đó hoàn toàn được viết theo kịch bản, cho biết chính xác có bao nhiêu chuyển động theo hướng nào, nhưng trong trường hợp này, hướng chuyển động thay đổi theo mỗi lần nảy. Chương trình có một đối tượng đồ họa if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer04 và bước hoạt hình trung tâm là weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")9 nhưng trong trường hợp này, dx và dy phải thay đổi khi quả bóng đến một đường biên. Chẳng hạn, hãy tưởng tượng quả bóng đi về phía bên trái khi nó đang di chuyển sang trái và lên trên. Cú nảy rõ ràng làm thay đổi phần nằm ngang của chuyển động, trên thực tế là đảo ngược nó, nhưng quả bóng vẫn tiếp tục bay lên. Sự đảo ngược của phần nằm ngang của chuyển động có nghĩa là sự dịch chuyển ngang thay đổi hướng và do đó dấu hiệu của nó if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer0 nhưng if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer05 không cần thay đổi. Việc chuyển đổi này không xảy ra ở mỗi bước hoạt ảnh mà chỉ xảy ra khi quả bóng đến mép cửa sổ. Nó chỉ xảy ra đôi khi - gợi ý một tuyên bố 'a' > 59. Vẫn phải xác định điều kiện. Giả sử tâm quả cầu có tọa độ (x, y). Khi x đạt đến một số tọa độ x cụ thể, hãy gọi nó là xLow, quả bóng sẽ nảy Cạnh của cửa sổ nằm ở tọa độ 0, nhưng if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer07 không được là 0, nếu không quả bóng sẽ cách nửa màn hình trước khi nảy. Để cạnh của quả bóng chạm vào cạnh của màn hình, tọa độ x của tâm phải bằng độ dài của bán kính ra xa, vì vậy thực ra if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer07 là bán kính của quả bóng Hoạt hình diễn ra nhanh chóng theo từng bước nhỏ, vì vậy tôi gian lận. Tôi cho phép quả bóng đi một bước (nhỏ, nhanh) qua nơi nó thực sự phải đi ( if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer07), và sau đó chúng tôi đảo ngược nó để nó quay trở lại nơi nó thuộc về. Đặc biệt if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer1 Có các biến giới hạn tương tự như if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer10, if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer11 và if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer12, tất cả bán kính cách xa tọa độ cạnh thực tế và các điều kiện tương tự để kiểm tra độ nảy của mỗi cạnh có thể. Lưu ý rằng bất kỳ cạnh nào bị bắn trúng, một tọa độ, dx hoặc dy, sẽ đảo ngược. Một cách mà bộ sưu tập các bài kiểm tra có thể được viết là if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer2 Cách tiếp cận này sẽ gây ra một số thử nghiệm bổ sung. Nếu đúng là if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer13, thì không thể nào đúng là if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer14, vì vậy chúng tôi không cần cả hai bài kiểm tra cùng nhau. Chúng tôi tránh các thử nghiệm không cần thiết với mệnh đề elif (cho cả x và y) if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer3 Lưu ý rằng 'a' > 59 ở giữa không được đổi thành weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")33, vì bóng có thể đi đến góc và cần đảo ngược cả if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer17 và if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer05 Chương trình cũng sử dụng một số phương thức để đọc một phần trạng thái của các đối tượng đồ họa mà chúng tôi chưa sử dụng trong các ví dụ. Các đối tượng đồ họa khác nhau, chẳng hạn như hình tròn mà chúng ta đang sử dụng làm hình dạng, biết điểm trung tâm của chúng và có thể truy cập nó bằng phương thức if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer19. (Trên thực tế, một bản sao của điểm được trả lại. ) Ngoài ra, mỗi tọa độ của một if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer20 có thể được truy cập bằng các phương thức if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer21 và if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer22 Điều này giải thích các tính năng mới trong chức năng trung tâm được xác định để chuyển xung quanh trong hộp, if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer23. Hoạt hình tùy ý diễn ra trong một vòng lặp lặp lại đơn giản trong 600 bước. (Một ví dụ sau sẽ cải thiện hành vi này. ) if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer4 Chương trình bắt đầu quả bóng từ một điểm tùy ý bên trong giới hạn hình chữ nhật cho phép. Điều này được gói gọn trong một chức năng tiện ích có trong chương trình, if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer24. Hàm getRandomPoint sử dụng hàm if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer25 từ mô-đun if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer26. Lưu ý rằng trong các tham số cho cả hai hàm if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer27 và if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer25, phần cuối được nêu vượt quá giá trị cuối cùng thực sự mong muốn if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer5 Toàn bộ chương trình được liệt kê dưới đây, lặp lại if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer23 và if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer24 cho đầy đủ. Một số phần có thể hữu ích sau này hoặc dễ theo dõi nhất dưới dạng một đơn vị, được tách ra thành các chức năng. Hãy chắc chắn rằng bạn thấy mọi thứ kết hợp với nhau như thế nào hoặc đặt câu hỏi if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer6 3. 1. 6. 1. Bài tập chuỗi ngắnViết chương trình if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer31 với hàm if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer32 với tiêu đề if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer7 Trong chương trình chính của bạn, hãy kiểm tra chức năng, gọi nó nhiều lần với các danh sách chuỗi khác nhau. Gợi ý. Tìm độ dài của mỗi chuỗi bằng hàm if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer33 Tài liệu chức năng ở đây mô hình hóa một cách tiếp cận chung. minh họa hành vi của hàm bằng tương tác Python Shell. Phần này bắt đầu bằng một dòng bắt đầu bằng if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer34. Các bài tập và ví dụ khác cũng sẽ ghi lại hành vi trong Shell 3. 1. 6. 2. Bài tập in đềuViết chương trình if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer35 với hàm if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer36 với tiêu đề if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer8 Trong chương trình chính của bạn, hãy kiểm tra hàm, gọi nó nhiều lần với các danh sách số nguyên khác nhau. Gợi ý. Một số là số chẵn nếu số dư của nó khi chia cho 2 là 0 3. 1. 6. 3. Bài tập về danh sách chẵnViết chương trình if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer37 với hàm if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer38 với tiêu đề if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer9 Trong chương trình chính của bạn, hãy kiểm tra hàm, gọi nó nhiều lần với các danh sách số nguyên khác nhau và in kết quả trong chương trình chính. (Chuỗi tài liệu minh họa lệnh gọi hàm trong trình bao Python, nơi giá trị trả về được in tự động. Hãy nhớ rằng trong một chương trình, bạn chỉ in những gì bạn nói rõ ràng là in. ) Gợi ý. Trong hàm, hãy tạo một danh sách mới và nối các số thích hợp vào danh sách đó trước khi trả về kết quả 3. 1. 6. 4. Bài tập danh sách duy nhất* Chương trình if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer39 có hàm if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer40, trước tiên tạo danh sách mỗi lần xuất hiện của một gợi ý ở định dạng câu chuyện. Điều này đưa ra các tín hiệu theo thứ tự, nhưng có thể bao gồm các lần lặp lại. Phiên bản gốc của if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer40 sử dụng một phương pháp nhanh chóng để loại bỏ các bản trùng lặp, tạo thành một bộ từ danh sách. Có một bất lợi trong việc chuyển đổi, mặc dù. Các bộ không được sắp xếp theo thứ tự, vì vậy khi bạn lặp qua bộ kết quả, thứ tự của các tín hiệu có thể sẽ không giống với thứ tự chúng xuất hiện lần đầu trong danh sách. Vấn đề đó thúc đẩy vấn đề này Sao chép if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer39 thành if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer43 và thêm chức năng với tiêu đề này temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')0 Gợi ý. Xử lý if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer44 theo thứ tự. Sử dụng cú pháp >>> vals = ['this', 'is', 'it] >>> 'is' in vals True >>> 'was' in vals False9 để chỉ nối các phần tử vào danh sách mới chưa có trong danh sách mới Sau khi hoàn thiện chức năng if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer46, hãy thay thế dòng cuối cùng của if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer40, vì vậy nó sử dụng if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer46 để loại bỏ các bản sao trong if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer49 Kiểm tra xem if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer43 của bạn có nhắc bạn về các giá trị tín hiệu theo thứ tự các tín hiệu xuất hiện đầu tiên trong chuỗi định dạng madlib không 3. 1. 7. Biểu thức Boolean hợp chấtĐể đủ điều kiện tốt nghiệp Đại học Loyola Chicago, bạn phải có 120 tín chỉ và điểm trung bình tối thiểu là 2. 0. Điều này chuyển trực tiếp sang Python dưới dạng điều kiện ghép temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')1 Điều này đúng nếu cả if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer51 đều đúng và if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer52 đúng. Một chương trình ví dụ ngắn sử dụng điều này sẽ là temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')2 Cú pháp Python mới dành cho toán tử if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer53
Điều kiện hợp chất là đúng nếu cả hai điều kiện thành phần đều đúng. Nó là sai nếu ít nhất một trong các điều kiện là sai Thấy Trong ví dụ cuối cùng ở phần trước, có một câu lệnh 'a' > 59- weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")33 trong đó cả hai bài kiểm tra đều có cùng một khối được thực hiện nếu điều kiện là đúng temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')3 Có một cách đơn giản hơn để diễn đạt điều này trong một câu. Nếu x < xLow hoặc x > xHigh thì đổi dấu của dx. Điều đó dịch trực tiếp sang Python temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')4 Từ if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer57 tạo thành một điều kiện ghép khác
là đúng nếu ít nhất một trong các điều kiện là đúng. Sai nếu cả hai điều kiện đều sai. Điều này tương ứng với một cách mà từ “hoặc” được sử dụng trong tiếng Anh. Những lần khác trong tiếng Anh “hoặc” được dùng để chỉ chính xác một phương án đúng Cảnh báo Khi dịch một vấn đề được nêu bằng tiếng Anh bằng cách sử dụng “hoặc”, hãy cẩn thận để xác định xem nghĩa có khớp với if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer57 của Python không Nó thường thuận tiện để đóng gói các bài kiểm tra phức tạp bên trong một chức năng. Hãy suy nghĩ làm thế nào để hoàn thành chức năng bắt đầu temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')5 Nhớ lại rằng một if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer60 được xác định trong hàm tạo của nó bằng hai đường chéo đối nhau của các if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer20. Ví dụ này đưa ra cách sử dụng đầu tiên trong các hướng dẫn về phương pháp if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer60 phục hồi hai điểm góc đó, if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer63 và if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer64. Chương trình gọi số điểm đạt được theo cách này là if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer65 và if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer66. Tọa độ x và y của if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer65, if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer66 và if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer69 có thể được phục hồi bằng các phương pháp của loại if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer20, if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer21 và if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer22 Giả sử rằng tôi giới thiệu các biến cho tọa độ x của if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer65, if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer69 và if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer66, gọi các tọa độ x này lần lượt là if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer76, if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer77 và if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer78. Trong lần thử đầu tiên, bạn có thể quyết định rằng mối quan hệ toán học cần thiết để kiểm tra là temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')6 Thật không may, điều này là không đủ. Yêu cầu duy nhất đối với hai điểm góc là chúng đối diện nhau theo đường chéo, không phải tọa độ của điểm thứ hai cao hơn tọa độ tương ứng của điểm thứ nhất. Nó có thể là if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer76 là 200; . Trong trường hợp sau này, if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer77 nằm giữa if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer76 và if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer78, nhưng thay thế vào biểu thức trên temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')7 là sai. 100 và 200 cần phải đảo ngược trong trường hợp này. Điều này làm cho một tình hình phức tạp. Ngoài ra, đây là một vấn đề phải được xem xét lại cho cả tọa độ x và y. Tôi giới thiệu một chức năng phụ trợ if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer85 để xử lý một tọa độ tại một thời điểm. Nó bắt đầu temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')8 Rõ ràng điều này đúng nếu biểu thức ban đầu, if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer86, là đúng. Bạn cũng phải xem xét trường hợp có thể xảy ra khi thứ tự của các đầu bị đảo ngược. if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer87. Làm thế nào để chúng ta kết hợp hai khả năng này? . Cái nào áp dụng? Một thân hàm đúng nhưng dư thừa sẽ là temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')9 Kiểm tra ý nghĩa. nếu biểu thức ghép là 'a' > 51, trả về 'a' > 51. Nếu điều kiện là 'a' > 52, hãy trả về 'a' > 52 – trong cả hai trường hợp, hãy trả về cùng một giá trị như điều kiện kiểm tra. Thấy rằng một phiên bản đơn giản và gọn gàng hơn nhiều là chỉ trả về giá trị của chính điều kiện đó x = 5 x x == 5 x == 6 x x != 6 x = 6 6 == x 6 != x 'hi' == 'h' + 'i' 'HI' != 'hi' [1, 2] != [2, 1]0 Ghi chú Nói chung, bạn không cần câu lệnh 'a' > 59- def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9 để chọn giữa các giá trị đúng và sai. Thao tác trực tiếp trên biểu thức boolean Một nhận xét phụ về các biểu thức như temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')6 Khác với các toán tử hai ký tự, điều này giống như cú pháp toán học tiêu chuẩn, so sánh chuỗi. Trong Python, bất kỳ số lượng phép so sánh nào cũng có thể được xâu chuỗi theo cách này, gần đúng với ký hiệu toán học. Mặc dù đây là Python tốt, hãy lưu ý rằng nếu bạn thử các ngôn ngữ cấp cao khác như Java và C++, cách diễn đạt như vậy là vô nghĩa. Một cách khác có thể diễn đạt biểu thức (và dịch trực tiếp sang các ngôn ngữ khác) là x = 5 x x == 5 x == 6 x x != 6 x = 6 6 == x 6 != x 'hi' == 'h' + 'i' 'HI' != 'hi' [1, 2] != [2, 1]2 Quá nhiều cho chức năng phụ trợ if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer85. Quay lại hàm if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer98. Bạn có thể sử dụng hàm if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer85 để kiểm tra tọa độ x, x = 5 x x == 5 x == 6 x x != 6 x = 6 6 == x 6 != x 'hi' == 'h' + 'i' 'HI' != 'hi' [1, 2] != [2, 1]3 và để kiểm tra tọa độ y, x = 5 x x == 5 x == 6 x x != 6 x = 6 6 == x 6 != x 'hi' == 'h' + 'i' 'HI' != 'hi' [1, 2] != [2, 1]4 Một lần nữa câu hỏi đặt ra. làm thế nào để bạn kết hợp hai bài kiểm tra? Trong trường hợp này, chúng ta cần điểm nằm ở cả hai bên và giữa trên và dưới, do đó, đầu nối thích hợp là và Nghĩ cách kết thúc phương pháp if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer98. Gợi ý. Đôi khi bạn muốn kiểm tra điều ngược lại của một điều kiện. Như trong tiếng Anh, bạn có thể sử dụng từ weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")01. Chẳng hạn, để kiểm tra xem một Điểm không nằm trong Rectangle Rect hay không, bạn có thể sử dụng điều kiện x = 5 x x == 5 x == 6 x x != 6 x = 6 6 == x 6 != x 'hi' == 'h' + 'i' 'HI' != 'hi' [1, 2] != [2, 1]5 Nói chung, weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")01 điều kiện là 'a' > 51 khi điều kiện là 'a' > 52, và 'a' > 52 khi điều kiện là 'a' > 51 Chương trình ví dụ temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')07, hiển thị bên dưới, là một chương trình hoàn chỉnh sử dụng hàm if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer98 trong một ứng dụng đơn giản, chọn màu. tha thứ cho chiều dài. Hãy kiểm tra xem nó ra. Nó sẽ là điểm khởi đầu cho một số cải tiến nhằm rút ngắn và làm cho nó mạnh mẽ hơn trong phần tiếp theo. Đầu tiên một cái nhìn tổng quan ngắn gọn Chương trình bao gồm các chức năng if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer85 và if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer98 đã được thảo luận. Chương trình tạo một số hình chữ nhật màu để sử dụng làm nút và cũng như các thành phần hình ảnh. Ngoài các giá trị dữ liệu cụ thể, mã để tạo mỗi hình chữ nhật đều giống nhau, vì vậy hành động được gói gọn trong một hàm, temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')11. Tất cả điều này là tốt, và sẽ được bảo tồn trong các phiên bản sau Chức năng chính hiện tại là dài, mặc dù. Nó có mã bắt đầu đồ họa thông thường, vẽ các nút và thành phần hình ảnh, sau đó có một số đoạn mã nhắc người dùng chọn màu cho thành phần hình ảnh. Mỗi phần mã có một bài kiểm tra dài 'a' > 59- weight = float(input("How many pounds does your suitcase weigh? ")) if weight > 50: print("There is a $25 charge for luggage that heavy.") print("Thank you for your business.")33- def calcWeeklyWages(totalHours, hourlyWage): '''Return the total weekly wages for a worker working totalHours, with a given regular hourlyWage. Include overtime for hours over 40. '''9 để xem nút nào đã được nhấp và đặt màu của thành phần hình ảnh một cách thích hợp x = 5 x x == 5 x == 6 x x != 6 x = 6 6 == x 6 != x 'hi' == 'h' + 'i' 'HI' != 'hi' [1, 2] != [2, 1]6 Tính năng mới hơn nữa duy nhất được sử dụng là trong câu trả lời dài trong if balance < 0: transfer = -balance # transfer enough from the backup account: backupAccount = backupAccount - transfer balance = balance + transfer98 x = 5 x x == 5 x == 6 x x != 6 x = 6 6 == x 6 != x 'hi' == 'h' + 'i' 'HI' != 'hi' [1, 2] != [2, 1]7 Nhớ lại rằng Python đủ thông minh để nhận ra rằng một câu lệnh tiếp tục đến dòng tiếp theo nếu có một cặp dấu ngoặc đơn hoặc dấu ngoặc đơn không khớp. Trên đây là một tình huống khác với một câu lệnh dài nhưng không có dấu ngoặc đơn nào liền trên một dòng. Để dễ đọc, tốt nhất là không nên tạo một dòng quá dài sẽ chạy ra khỏi màn hình hoặc trang giấy của bạn. Tiếp tục đến dòng tiếp theo được khuyến nghị. Bạn có thể đặt ký tự cuối cùng trên một dòng thành dấu gạch chéo ngược ( temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')16) để biểu thị câu lệnh tiếp tục ở dòng tiếp theo. Đây không phải là đặc biệt gọn gàng, nhưng nó là một tình huống khá hiếm. Hầu hết các câu lệnh nằm gọn gàng trên một dòng và người tạo ra Python đã quyết định tốt nhất là làm cho cú pháp trở nên đơn giản trong tình huống phổ biến nhất. (Nhiều ngôn ngữ khác yêu cầu ký hiệu kết thúc câu lệnh đặc biệt như ';' và không chú ý đến dòng mới). Dấu ngoặc đơn bổ sung ở đây sẽ không ảnh hưởng gì, vì vậy một giải pháp thay thế sẽ là x = 5 x x == 5 x == 6 x x != 6 x = 6 6 == x 6 != x 'hi' == 'h' + 'i' 'HI' != 'hi' [1, 2] != [2, 1]8 Nút chọn1. chương trình py dài một phần do mã lặp lại. Phần tiếp theo đưa ra một phiên bản khác liên quan đến danh sách 3. 1. 7. 1. tập thể dục quốc hộiMột người đủ điều kiện trở thành Thượng nghị sĩ Hoa Kỳ ít nhất 30 tuổi và đã là công dân Hoa Kỳ ít nhất 9 năm. Viết phiên bản ban đầu của chương trình temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')17 để lấy tuổi và thời hạn quốc tịch của người dùng và in ra liệu một người có đủ điều kiện trở thành Thượng nghị sĩ hay không Một người đủ điều kiện trở thành Dân biểu Hoa Kỳ ít nhất 25 tuổi và đã là công dân Hoa Kỳ ít nhất 7 năm. Xây dựng chương trình của bạn temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')17 để nó có được độ tuổi và thời hạn công dân và chỉ in ra một trong ba câu sau đây là chính xác
3. 1. 8. Các phương thức chuỗi khácDưới đây là một vài phương thức chuỗi hữu ích trong các bài tập tiếp theo, giả sử các phương thức này được áp dụng cho một chuỗi temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')19
3. 1. 8. 1. Điều bắt đầu tập thể dụcTrong cách sắp xếp theo thứ tự bảng chữ cái của thư viện, nếu từ đầu tiên là một mạo từ (“The”, “A”, “An”), thì nó sẽ bị bỏ qua khi sắp xếp thứ tự các mục nhập. Viết chương trình hoàn thành chức năng này và sau đó kiểm tra nó 'a' > 50 Hãy cẩn thận, nếu tiêu đề bắt đầu bằng “Có”, nó không bắt đầu bằng một bài báo. Bạn nên kiểm tra cái gì? 3. 1. 8. 2. Bài Tập Chuỗi Số Là** Trong phần sau, điều quan trọng là phải biết liệu một chuỗi có thể được chuyển đổi thành loại số mong muốn hay không. Khám phá điều đó tại đây. Lưu ví dụ temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')39 thành temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')40 và hoàn thành nó. Nó chứa các tiêu đề và chuỗi tài liệu cho các chức năng trong cả hai phần của bài tập này Một chuỗi số nguyên hợp pháp bao gồm toàn bộ các chữ số. May mắn thay, các chuỗi có một phương thức temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')41, phương thức này đúng khi một chuỗi không rỗng bao gồm toàn các chữ số, vì vậy, temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')42 trả về 'a' > 51 và temperature = float(input('What is the temperature? ')) if temperature > 70: print('Wear shorts.') else: print('Wear long pants.') print('Get some exercise outside.')44 trả về 'a' > 52, chính xác tương ứng với các tình huống khi chuỗi đại diện cho một số nguyên Trong cả hai phần hãy chắc chắn để kiểm tra cẩn thận. Không chỉ xác nhận rằng tất cả các chuỗi phù hợp trả về 'a' > 51. Ngoài ra, hãy đảm bảo kiểm tra xem bạn có trả về 'a' > 52 cho tất cả các loại chuỗi không hợp lệ hay không
|