Trong bài học cuối cùng của chúng tôi, chúng tôi đã phát hiện ra điều gì đó đáng ngờ đang diễn ra trong dữ liệu viêm của chúng tôi bằng cách vẽ một số lô. Làm thế nào chúng ta có thể sử dụng Python để tự động nhận ra các tính năng khác nhau mà chúng ta đã thấy và thực hiện một hành động khác nhau cho mỗi tính năng? Trong bài học này, chúng tôi sẽ học cách viết mã chỉ chạy khi một số điều kiện nhất định là đúng.
Điều kiện
Chúng ta có thể yêu cầu Python thực hiện các hành động khác nhau, tùy thuộc vào điều kiện, với tuyên bố
if(1<0)or(1>=0):print('at least one test is true')
at least one test is true
at least one part is false
3 và at least one part is false
4
at least one part is false
3 và
at least one part is false
4 là những từ đặc biệt trong Python được gọi là
at least one part is false
7, đại diện cho các giá trị sự thật. Một câu lệnh như
at least one part is false
8 trả về giá trị
at least one part is false
4, trong khi
if(1<0)or(1>=0):print('at least one test is true')
0 trả về giá trị
at least one part is false
3.
Kiểm tra dữ liệu của chúng tôi
Bây giờ chúng tôi đã thấy cách thức hoạt động của các điều kiện, chúng tôi có thể sử dụng chúng để kiểm tra các tính năng đáng ngờ mà chúng tôi đã thấy trong dữ liệu viêm của chúng tôi. Chúng tôi sắp sử dụng các chức năng được cung cấp bởi mô -đun
if(1<0)or(1>=0):print('at least one test is true')
2 một lần nữa. Do đó, nếu bạn làm việc trong một phiên Python mới, hãy đảm bảo tải mô -đun với:
Từ vài lô đầu tiên, chúng tôi đã thấy rằng viêm tối đa hàng ngày thể hiện một hành vi kỳ lạ và tăng một đơn vị mỗi ngày. Sẽ là một ý tưởng tốt để phát hiện hành vi như vậy và báo cáo nó là đáng ngờ? Hãy để làm điều đó! Tuy nhiên, thay vì kiểm tra mỗi ngày của nghiên cứu, hãy để chỉ kiểm tra xem viêm tối đa ở đầu (ngày 0) và ở giữa (ngày 20) của nghiên cứu có bằng với số ngày tương ứng.
Chúng tôi cũng đã thấy một vấn đề khác trong bộ dữ liệu thứ ba; Timea mỗi ngày đều bằng không (trông giống như một người khỏe mạnh lẻn vào nghiên cứu của chúng tôi). Chúng tôi cũng có thể kiểm tra điều này với điều kiện
before conditional...
...after conditional
7:
elifnumpy.sum(numpy.min(data,axis=0))==0:print('Minima add up to zero!')
Và nếu cả hai điều kiện này đều không đúng, chúng ta có thể sử dụng
before conditional...
...after conditional
8 để cung cấp cho tất cả rõ ràng:
Hãy để thử nghiệm điều đó:
num=53print('before conditional...')ifnum>100:print(num,'is greater than 100')print('...after conditional')
0
num=53print('before conditional...')ifnum>100:print(num,'is greater than 100')print('...after conditional')
1
num=53print('before conditional...')ifnum>100:print(num,'is greater than 100')print('...after conditional')
2
Theo cách này, chúng tôi đã yêu cầu Python làm điều gì đó khác biệt tùy thuộc vào điều kiện dữ liệu của chúng tôi. Ở đây chúng tôi đã in tin nhắn trong mọi trường hợp, nhưng chúng tôi cũng có thể tưởng tượng không sử dụng
before conditional...
...after conditional
8 bắt tất cả để các tin nhắn chỉ được in khi có gì đó không ổn, giải phóng chúng tôi khỏi phải kiểm tra thủ công mọi âm mưu cho các tính năng mà chúng tôi đã thấy trước đây.
Có bao nhiêu con đường?
Xem xét mã này:
num=53print('before conditional...')ifnum>100:print(num,'is greater than 100')print('...after conditional')
3
Điều nào sau đây sẽ được in nếu bạn chạy mã này? Tại sao bạn chọn câu trả lời này?
Một
B
C
B và c
Dung dịch
C được in vì hai điều kiện đầu tiên,
if(1<0)or(1>=0):print('at least one test is true')
6 và
if(1<0)or(1>=0):print('at least one test is true')
7, không đúng, nhưng
if(1<0)or(1>=0):print('at least one test is true')
8 là đúng.
Sự thật là gì?
at least one part is false
3 và
at least one part is false
4 Booleans không phải là giá trị duy nhất trong Python là đúng và sai. Trên thực tế, bất kỳ giá trị nào cũng có thể được sử dụng trong một
before conditional...
...after conditional
6 hoặc
before conditional...
...after conditional
7. Sau khi đọc và chạy mã bên dưới, hãy giải thích quy tắc mà các giá trị được coi là đúng và được coi là sai.
num=53print('before conditional...')ifnum>100:print(num,'is greater than 100')print('...after conditional')
4
Đó không phải là ý tôi không phải là ý tôi
Đôi khi nó rất hữu ích để kiểm tra xem một số điều kiện có đúng không. Nhà điều hành Boolean
at least one test is true
3 có thể làm điều này một cách rõ ràng. Sau khi đọc và chạy mã bên dưới, hãy viết một số câu
before conditional...
...after conditional
6 sử dụng
at least one test is true
3 để kiểm tra quy tắc mà bạn đã xây dựng trong thử thách trước đó.
num=53print('before conditional...')ifnum>100:print(num,'is greater than 100')print('...after conditional')
5
Đủ gần
Viết một số điều kiện in
at least one part is false
3 nếu biến
at least one test is true
7 nằm trong phạm vi 10% của biến
at least one test is true
8 và
at least one part is false
4 nếu không. So sánh việc triển khai của bạn với đối tác của bạn: Bạn có nhận được câu trả lời tương tự cho tất cả các cặp số có thể không?
num=53print('before conditional...')ifnum>100:print(num,'is greater than 100')print('...after conditional')
6
Giải pháp 2
num=53print('before conditional...')ifnum>100:print(num,'is greater than 100')print('...after conditional')
7
Điều này hoạt động vì Booleans
at least one part is false
3 và
at least one part is false
4 có các biểu diễn chuỗi có thể được in.
Các nhà khai thác tại chỗ
Python (và hầu hết các ngôn ngữ khác trong họ C) cung cấp các nhà khai thác tại chỗ hoạt động như thế này:
num=53print('before conditional...')ifnum>100:print(num,'is greater than 100')print('...after conditional')
8
Viết một số mã tổng hợp các số dương và âm trong danh sách riêng biệt, sử dụng các toán tử tại chỗ. Bạn có nghĩ rằng kết quả ít nhiều dễ đọc hơn là viết giống nhau mà không có nhà khai thác tại chỗ?
Dung dịch
num=53print('before conditional...')ifnum>100:print(num,'is greater than 100')print('...after conditional')
7 của chúng tôi, các bộ dữ liệu lớn được lưu trữ trong các tệp có tên bắt đầu bằng các bộ viêm và bộ dữ liệu nhỏ và trong các tệp có tên bắt đầu bằng cách nhỏ. Chúng tôi cũng có một số tệp khác mà chúng tôi không quan tâm vào thời điểm này. Chúng tôi muốn chia tất cả các tệp này thành ba danh sách được gọi là
elifnumpy.sum(numpy.min(data,axis=0))==0:print('Minima add up to zero!')
0, tương ứng.
Thêm mã vào mẫu bên dưới để làm điều này. Lưu ý rằng phương thức chuỗi
elifnumpy.sum(numpy.min(data,axis=0))==0:print('Minima add up to zero!')
1 trả về
at least one part is false
3 khi và chỉ khi chuỗi được gọi BẬT bắt đầu với chuỗi được truyền dưới dạng đối số, đó là:
before conditional...
...after conditional
0
Nhưng mà
before conditional...
...after conditional
1
Sử dụng mã Python sau làm điểm bắt đầu của bạn:
before conditional...
...after conditional
2
Giải pháp của bạn nên:
lặp qua tên của các tệp
tìm ra nhóm mà mỗi tên tệp thuộc về
nối các tên tệp vào danh sách đó
Cuối cùng, ba danh sách nên là:
before conditional...
...after conditional
3
Dung dịch
before conditional...
...after conditional
4
Ở đây max_inflammation_0 = numpy.max(data, axis=0)[0]
max_inflammation_20 = numpy.max(data, axis=0)[20]
if max_inflammation_0 == 0 and max_inflammation_20 == 20:
print('Suspicious looking maxima!')
3 có nghĩa là người Viking làm bất cứ điều gì. Trong trường hợp cụ thể này, nó không thực sự cần thiết, vì nếu max_inflammation_0 = numpy.max(data, axis=0)[0]
max_inflammation_20 = numpy.max(data, axis=0)[20]
if max_inflammation_0 == 0 and max_inflammation_20 == 20:
print('Suspicious looking maxima!')
4 không cần phải thay đổi, nhưng nó minh họa việc sử dụng before conditional...
...after conditional
7 và max_inflammation_0 = numpy.max(data, axis=0)[0]
max_inflammation_20 = numpy.max(data, axis=0)[20]
if max_inflammation_0 == 0 and max_inflammation_20 == 20:
print('Suspicious looking maxima!')
3.
7 của chúng tôi, các bộ dữ liệu lớn được lưu trữ trong các tệp có tên bắt đầu bằng các bộ viêm và bộ dữ liệu nhỏ và trong các tệp có tên bắt đầu bằng cách nhỏ. Chúng tôi cũng có một số tệp khác mà chúng tôi không quan tâm vào thời điểm này. Chúng tôi muốn chia tất cả các tệp này thành ba danh sách được gọi là
elifnumpy.sum(numpy.min(data,axis=0))==0:print('Minima add up to zero!')
0, tương ứng.
Thêm mã vào mẫu bên dưới để làm điều này. Lưu ý rằng phương thức chuỗi
elifnumpy.sum(numpy.min(data,axis=0))==0:print('Minima add up to zero!')
1 trả về
at least one part is false
3 khi và chỉ khi chuỗi được gọi BẬT bắt đầu với chuỗi được truyền dưới dạng đối số, đó là:
Dung dịch
before conditional...
...after conditional
5
Ở đây max_inflammation_0 = numpy.max(data, axis=0)[0]
max_inflammation_20 = numpy.max(data, axis=0)[20]
if max_inflammation_0 == 0 and max_inflammation_20 == 20:
print('Suspicious looking maxima!')
3 có nghĩa là người Viking làm bất cứ điều gì. Trong trường hợp cụ thể này, nó không thực sự cần thiết, vì nếu max_inflammation_0 = numpy.max(data, axis=0)[0]
max_inflammation_20 = numpy.max(data, axis=0)[20]
if max_inflammation_0 == 0 and max_inflammation_20 == 20:
print('Suspicious looking maxima!')
4 không cần phải thay đổi, nhưng nó minh họa việc sử dụng before conditional...
...after conditional
7 và max_inflammation_0 = numpy.max(data, axis=0)[0]
max_inflammation_20 = numpy.max(data, axis=0)[20]
if max_inflammation_0 == 0 and max_inflammation_20 == 20:
print('Suspicious looking maxima!')
3.
7 của chúng tôi, các bộ dữ liệu lớn được lưu trữ trong các tệp có tên bắt đầu bằng các bộ viêm và bộ dữ liệu nhỏ và trong các tệp có tên bắt đầu bằng cách nhỏ. Chúng tôi cũng có một số tệp khác mà chúng tôi không quan tâm vào thời điểm này. Chúng tôi muốn chia tất cả các tệp này thành ba danh sách được gọi là
elifnumpy.sum(numpy.min(data,axis=0))==0:print('Minima add up to zero!')
0, tương ứng.
Thêm mã vào mẫu bên dưới để làm điều này. Lưu ý rằng phương thức chuỗi
elifnumpy.sum(numpy.min(data,axis=0))==0:print('Minima add up to zero!')
1 trả về
at least one part is false
3 khi và chỉ khi chuỗi được gọi BẬT bắt đầu với chuỗi được truyền dưới dạng đối số, đó là:
Nhưng mà
Sử dụng mã Python sau làm điểm bắt đầu của bạn:
Giải pháp của bạn nên:
lặp qua tên của các tệp
Làm thế nào để bạn đưa ra lựa chọn trong Python?
Phương thức lựa chọn () trả về một phần tử được chọn ngẫu nhiên từ chuỗi được chỉ định. Trình tự có thể là một chuỗi, một phạm vi, một danh sách, một tuple hoặc bất kỳ loại trình tự nào khác.. The sequence can be a string, a range, a list, a tuple or any other kind of sequence.
Làm thế nào để bạn thực hiện một mã lựa chọn?
chuyển đổi câu lệnh..
Công tắc từ khóa, theo sau là một tập hợp dấu ngoặc đơn ..
Một biểu thức hoặc giá trị bên trong dấu ngoặc đơn ..
Trường hợp từ khóa, theo sau là một lựa chọn rằng biểu thức/giá trị có thể là, theo sau là một dấu hai chấm ..
Một số mã để chạy nếu lựa chọn khớp với biểu thức ..
Một tuyên bố phá vỡ, tiếp theo là một dấu chấm phẩy ..
Làm thế nào để bạn thêm các tùy chọn trong Python?
Đầu tiên, bạn cần nhập lớp CupplePparser;Sau đó, ngay từ đầu chương trình chính, tạo một phiên bản tùy chọnParser:..
trình phân tích cú pháp.add_option (opt_str, ..., attr = value, ...) ....
trình phân tích cú pháp.add_option ("-f", "--file", ...) ....
(Tùy chọn, Args) = trình phân tích cú pháp.parse_args ().
Làm thế nào để bạn tạo ra nhiều lựa chọn đầu vào trong Python?
Để xác định câu hỏi trắc nghiệm với đầu vào của người dùng: sử dụng hàm input () để lấy đầu vào từ người dùng.Kiểm tra xem đầu vào là một trong những lựa chọn được chỉ định.Sử dụng các câu lệnh có điều kiện để kiểm tra xem đầu vào có phải là một trong những lựa chọn có sẵn hay không.Use the input() function to take input from the user. Check if the input is one of the specified choices. Use conditional statements to check if the input is one of the available choices.