Itemgetter trong python

Hơn 100 bài tập Python kèm code mẫu được anh chàng zhiwehu chia sẻ trên Github, tuy nhiên, code sample của hàng loạt bài tập này được viết trên phiên bản Python cũ. Bản Việt hóa và chỉnh sửa cho phù hợp với bản Python 3. x giúp các bạn học tập và tập Python

Lưu ý. Các mẫu mã trong bài viết được viết trên Python 3. 6. 2, if you are used Python version from 2. 5 trở xuống không thể chạy mã được vì trong bản Python mới có nhiều lệnh, hàm đã bị thay đổi

Mỗi bài tập Python trong trang này sẽ bao gồm 3 phần như sau

  • câu hỏi
  • Gợi ý
  • mẫu mã

Bài 01.  

  • câu hỏi.  

​Viết chương trình tìm tất cả các số chia hết cho 7 nhưng không phải bội số của 5, nằm trong đoạn 2000 và 3200 [tính cả 2000 và 3200]. Các số được thu thập sẽ được in thành chuỗi trên một dòng, cách nhau bằng dấu phẩy

  • Gợi ý.  

​Phạm vi sử dụng[#begin, #end]

  • mẫu mã
j=[]
for i in range[2000, 3201]:
    if [i%7==0] and [i%5!=0]:
       j.append[str[i]]
print [','.join[j]]

  

bài 02.  

  • câu hỏi.  

​Viết một chương trình có thể tính giai đoạn thừa của một số cho trước. Kết quả được in thành chuỗi trên một dòng, được phân tách theo dấu phẩy. Ví dụ, number before is 8 thì kết quả đầu ra phải là 40320

  • Gợi ý

​Trong trường hợp dữ liệu đầu vào được cung cấp, bạn hãy chọn cách để người dùng nhập số vào

  • mẫu mã.  
  • x=int[input["Nhập số cần tính giai thừa:"]]
    def fact[x]:
        if x == 0:
          return 1
        return x * fact[x - 1]
    print [fact[x]]

bài 03.  

  • câu hỏi

Với số nguyên nhất định, hãy viết chương trình để tạo ra một từ điển chứa [i, i*i] dưới dạng số nguyên từ 1 đến n [bao gồm cả 1 và n] sau đó đưa vào từ điển này. Ví dụ. Giả sử số n là 8 thì đầu ra sẽ là. {1. 1, 2. 4, 3. 9, 4. 16, 5. 25, 6. 36, 7. 49, 8. 64}

  • Gợi ý

​Viết lệnh yêu cầu nhập nguyên n

  • mẫu mã.  
n=int[input["Nhập vào một số:"]]
d=dict[]
for i in range[1,n+1]:
    d[i]=i*i

print [d]

bài 04.  

  • câu hỏi.  

Viết chương trình chấp nhận một chuỗi số, phân tách bằng dấu phẩy từ giao diện điều khiển, tạo ra một danh sách và một tuple chứa mọi số

Ví dụ. Đầu vào được cung cấp là 34,67,55,33,12,98 thì đầu ra là

['34', '67', '55', '33', '12', '98']
['34', '67', '55

  • Gợi ý

Viết lệnh yêu cầu nhập vào các giá trị sau đó sử dụng quy tắc chuyển đổi kiểu dữ liệu để hoàn tất

  • mẫu mã.  
values=input["Nhập vào các giá trị:"]
l=values.split[","]
t=tuple[l]
print [l]
print [t]

bài 05.  

  • câu hỏi.  

Định nghĩa một lớp có ít nhất 2 phương thức.  

getString. to get a string do user input from the control interface

inChuỗi. in string vừa nhập sang chữ hoa.  

Thêm vào đơn giản tra cứu hàm nguy hiểm để kiểm tra phương thức của lớp

Ví dụ. Input string is quantrimang. com thì đầu ra phải là. QUANTRIMANG. COM

  • Gợi ý

​Sử dụng __init__ để xây dựng các tham số

  • mẫu mã.  
class InputOutString[object]:
   def __init__[self]:
       self.s = ""

   def getString[self]:
       self.s = input["Nhập chuỗi:"]
# Code by Quantrimang.com
   def printString[self]:
       print [self.s.upper[]]

strObj = InputOutString[]
strObj.getString[]
strObj.printString[]

bài 06

  • câu hỏi.  

​Viết một phương thức tính giá trị bình phương của một số

  • Gợi ý

​Sử dụng toán tử **

  • mẫu mã.  
x=int[input["Nhập một số:"]] #nhập số cần tính bình phương từ giao diện
def square[num]:  #định nghĩa bình phương của một số
  return num ** 2
# Code by Quantrimang.com
print [square[2]] #in bình phương của 2
print [square[3]] #in bình phương của 3
print [square[x]] #in bình phương của x

bài 07

  • câu hỏi.  

Python có nhiều hàm được tích hợp sẵn, nếu không biết cách sử dụng nó, bạn có thể đọc tài liệu trực tuyến hoặc tìm vài cuốn sách. Nhưng Python cũng có sẵn tài liệu về hàm cho mọi hàm tích hợp trong Python. Yêu cầu của bài tập này là viết một chương trình để đưa vào tài liệu về một số hàm Python được tích hợp sẵn như abs[], int[], input[] và thêm tài liệu cho hàm bạn định nghĩa

  • Gợi ý

Use __doc__

  • mẫu mã.  
print [abs.__doc__]
print [int.__doc__]
print [input.__doc__]
# Code by Quantrimang.com
def square[num]:
 '''Trả lại giá trị bình phương của số được nhập vào.

 Số nhập vào phải là số nguyên.
 '''
 return num ** 2

print [square.__doc__]

bài 08.  

  • câu hỏi.  

​Định nghĩa một lớp bao gồm lớp tham số và trường hợp có cùng tham số

  • Gợi ý

​Khi định nghĩa tham số dụ, cần thêm nó vào __init__

Bạn có thể khởi tạo một đối tượng với tham số bắt đầu hoặc thiết lập giá trị sau đó

  • mẫu mã.  
class Person:
 # Định nghĩa lớp "name"
 name = "Person"
# Code by Quantrimang.com
 def __init__[self, name = None]:
 # self.name là biến instance
 self.name = name

jeffrey = Person["Jeffrey"]
print ["%s name is %s" % [Person.name, jeffrey.name]]

nico = Person[]
nico.name = "Nico"
print ["%s name is %s" % [Person.name, nico.name]]

bài 09.  

  • câu hỏi.  

Viết chương trình và in value theo công thức cho trước. Q = √[[[2 * C * D]/H]] [ bằng chữ. Q bằng căn bậc hai của [[2 nhân C nhân D] chia H]. With the fixed value of C is 50, H is 30. D là dãy giá trị tùy biến, được nhập vào từ giao diện người dùng, các giá trị của D được phân cách bằng dấu phẩy

Ví dụ. Giả sử chuỗi giá trị của D đầu vào là 100,150,180 thì đầu ra sẽ là 18,22,24

  • Gợi ý

​Nếu đầu ra nhận được là một số ở dạng thập phân, bạn cần làm tròn thành giá trị gần nhất, ví dụ 26. 0 will be in is 26

Trong trường hợp dữ liệu đầu vào được cung cấp cho câu hỏi, nó được giả định là đầu vào do người dùng nhập từ giao diện điều khiển

  • mẫu mã.  
________số 8

bài 10.  

  • câu hỏi.  

Viết một chương trình có 2 chữ số, X, Y nhận giá trị từ đầu vào và tạo ra một mảng 2 chiều. Element value in the thứ i và cột thứ j của mảng phải là i*j

Lưu ý. i=0,1,. ,X-1; . ,Y-1.  

Ví dụ. In value X, Y input is 3,5, the start out is. [[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8]]

  • Gợi ý

​Viết lệnh để nhận giá trị X, Y từ giao diện điều khiển do người dùng nhập vào

  • mẫu mã.  
input_str = input["Nhập X, Y: "]
dimensions=[int[x] for x in input_str.split[',']]
rowNum=dimensions[0]
colNum=dimensions[1]
multilist = [[0 for col in range[colNum]] for row in range[rowNum]]
# Code by Quantrimang.com
for row in range[rowNum]:
    for col in range[colNum]:
        multilist[row][col]= row*col

print [multilist]

Bài 11.  

  • câu hỏi.  

Viết một chương trình chấp nhận chuỗi từ do người dùng nhập vào, phân tách nhau bằng dấu phẩy và trong những từ đó thành chuỗi theo thứ tự bảng chữ cái, phân tách nhau bằng dấu phẩy

Giả sử đầu vào được nhập là. without,hello,bag,world, thì đầu ra sẽ là. túi, xin chào, không có, thế giới

  • Gợi ý

​Trong trường hợp dữ liệu đầu vào được nhập vào chương trình, nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển

  • mẫu mã.  
x=int[input["Nhập số cần tính giai thừa:"]]
def fact[x]:
    if x == 0:
      return 1
    return x * fact[x - 1]
print [fact[x]]
0

bài 12

  • câu hỏi.  

Viết một chương trình chấp nhận chuỗi là các dòng được nhập, chuyển các dòng này thành chữ hoa và trong màn hình. The first description is

Xin chào thế giới
Thực hành tạo nên sự hoàn hảo

Thì đầu ra sẽ là

HELLO WORLD
THỰC HÀNH TẠO RA SỰ HOÀN HẢO

  • Gợi ý

Trong trường hợp dữ liệu đầu vào được nhập vào chương trình, nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển

  • mẫu mã.  
x=int[input["Nhập số cần tính giai thừa:"]]
def fact[x]:
    if x == 0:
      return 1
    return x * fact[x - 1]
print [fact[x]]
1

bài 13.  

  • câu hỏi.  

Viết một chương trình chấp nhận đầu vào là một chuỗi các từ phân tách tách biệt bởi khoảng trắng, loại bỏ các từ trùng lặp, sắp xếp theo thứ tự của bảng chữ cái, rồi trong chúng

The first description is. xin chào thế giới và thực hành làm cho hoàn hảo và xin chào thế giới một lần nữa

The start up is. một lần nữa và xin chào làm cho thế giới thực hành hoàn hảo

  • Gợi ý

​Trong trường hợp dữ liệu đầu vào được nhập vào chương trình, nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển

Sử dụng set để loại bỏ dữ liệu lặp lại tự động và sử dụng sorted[] để sắp xếp dữ liệu

  • mẫu mã.  
x=int[input["Nhập số cần tính giai thừa:"]]
def fact[x]:
    if x == 0:
      return 1
    return x * fact[x - 1]
print [fact[x]]
2

bài 14

  • câu hỏi.  

Viết một chương trình chấp nhận đầu vào là chuỗi nhị phân phân số 4 chữ số, phân tách bởi dấu phẩy, kiểm tra xem chúng có chia hết cho 5 không. Sau đó, các số được chia hết cho 5 thành dãy được phân tách bằng dấu phẩy

Ví dụ đầu vào là. 0100,0011,1010,1001

Header will be. 1010

  • Gợi ý

Trong trường hợp dữ liệu đầu vào được nhập vào chương trình, nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển

  • mẫu mã.  
x=int[input["Nhập số cần tính giai thừa:"]]
def fact[x]:
    if x == 0:
      return 1
    return x * fact[x - 1]
print [fact[x]]
3

bài 15

  • câu hỏi.  

​Viết một chương trình tìm tất cả các số trong đoạn 1000 và 3000 [tính cả 2 số này] sao cho tất cả các số trong số đó là số hiện tại. Trong các số được tìm thấy, các chuỗi cách nhau bởi dấu phẩy, trên một dòng

  • Gợi ý

Trong trường hợp dữ liệu đầu vào được nhập vào chương trình, nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển. ​

  • mẫu mã.  
x=int[input["Nhập số cần tính giai thừa:"]]
def fact[x]:
    if x == 0:
      return 1
    return x * fact[x - 1]
print [fact[x]]
4

bài 16.  

  • câu hỏi.  

Viết một chương trình tiếp nhận đầu vào là một câu, đếm số chữ cái và chữ số trong câu đó. Giả sử đầu vào sau khi được cấp cho chương trình. Chào thế giới. 123

Thì đầu ra sẽ là.  

Số chữ cái là. 10
Số chữ số là. 3

  • Gợi ý

Trong trường hợp dữ liệu đầu vào được nhập vào chương trình, nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển

  • mẫu mã.  
x=int[input["Nhập số cần tính giai thừa:"]]
def fact[x]:
    if x == 0:
      return 1
    return x * fact[x - 1]
print [fact[x]]
5

bài 17

  • câu hỏi.  

Viết một chương trình chấp nhận đầu vào là một câu, đếm chữ hoa, chữ thường

The first description is. Quản Trị Mạng

The start up is

chữ hoa. 3

Chữ thường. số 8

  • Gợi ý

Trong trường hợp dữ liệu đầu vào được nhập vào chương trình, nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển

  • mẫu mã.  
x=int[input["Nhập số cần tính giai thừa:"]]
def fact[x]:
    if x == 0:
      return 1
    return x * fact[x - 1]
print [fact[x]]
6

bài 18.  

  • câu hỏi.  

Viết một chương trình tính giá trị của a+aa+aaa+aaaa với một số được người dùng nhập vào

 

Giả sử a được nhập vào là 1 thì đầu ra sẽ là. 1234

  • Gợi ý

Trong trường hợp dữ liệu đầu vào được nhập vào chương trình, nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển

  • mẫu mã.  
x=int[input["Nhập số cần tính giai thừa:"]]
def fact[x]:
    if x == 0:
      return 1
    return x * fact[x - 1]
print [fact[x]]
7

bài 19

  • câu hỏi.  

​Sử dụng một danh sách để lọc các số lẻ từ danh sách mà người dùng nhập vào

The first description is. 1,2,3,4,5,6,7,8,9 thì đầu phải là. 1,3,5,7,9

  • Gợi ý

​Trong trường hợp dữ liệu đầu vào được nhập vào chương trình, nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển

  • mẫu mã.  
x=int[input["Nhập số cần tính giai thừa:"]]
def fact[x]:
    if x == 0:
      return 1
    return x * fact[x - 1]
print [fact[x]]
8

bài 20

  • câu hỏi

Viết chương trình tính toán số tiền thực hiện của một tài khoản ngân hàng dựa trên nhật ký giao dịch được nhập vào từ giao diện điều khiển.  

Nhật ký định dạng được hiển thị như sau

D 100
W 200

[D là tiền gửi, W là rút tiền]

Giả sử đầu vào được cung cấp là

D 300

D 300

W 200

Đ100

Thì đầu ra sẽ là

500

  • Gợi ý

​Trong trường hợp dữ liệu đầu vào được nhập vào chương trình, nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển

  • mẫu mã.  

 

x=int[input["Nhập số cần tính giai thừa:"]]
def fact[x]:
    if x == 0:
      return 1
    return x * fact[x - 1]
print [fact[x]]
9

bài 21

  • câu hỏi.  

Một trang web yêu cầu người dùng nhập tên người dùng và mật khẩu để đăng ký. Viết chương trình để kiểm tra tính hợp lệ của mật khẩu mà người dùng nhập vào

Các tiêu chí kiểm tra mật khẩu bao gồm

1. Ít nhất 1 chữ cái nằm trong [a-z]
2. Ít nhất 1 số nằm trong [0-9]
3. Ít nhất 1 ký tự nằm trong [A-Z]
4. Ít nhất 1 ký tự nằm trong [$ # @]
5. Độ dài mật khẩu tối thiểu. 6
6. Độ dài mật khẩu tối đa. 12

Chương trình phải chấp nhận một chuỗi mật khẩu phân tách bằng dấu phẩy và kiểm tra xem chúng có trả lời những tiêu chí trên hay không. Các mật khẩu hợp lệ sẽ được nhập vào, mỗi mật khẩu cách nhau bởi dấu phẩy

Ví dụ nhập mật khẩu vào chương trình là. ABd1234@1,a F1#,2w3E*,2We3345

Thì đầu ra sẽ là. ABd1234@1​

  • Gợi ý

​Trong trường hợp dữ liệu đầu vào được nhập vào chương trình, nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển

  • mẫu mã.  
n=int[input["Nhập vào một số:"]]
d=dict[]
for i in range[1,n+1]:
    d[i]=i*i

print [d]
0

bài 22

  • câu hỏi.  

Viết chương trình sắp xếp tuple [tên, tuổi, điểm] theo thứ tự tăng dần, tên là chuỗi, tuổi và chiều cao là số. Tuple được nhập bởi người dùng. Tiêu chí sắp xếp là

Sắp xếp theo tên sau đó sắp xếp theo tuổi, sau đó sắp xếp theo điểm. Ưu tiên là tên > tuổi > điểm

If the first to is

Tom,19,80
John,20,90
Jony,17,91
Jony,17
Json,21,85

Thì đầu ra sẽ là

 

[['John', '20', '90'], ['Jony', '17', '91'], ['Jony', '17', '93'], ['Json', '21

  • Gợi ý

Trong trường hợp dữ liệu đầu vào được nhập vào chương trình, nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển

 

Use itemgetter to accept many key sorting

  • mẫu mã.  
n=int[input["Nhập vào một số:"]]
d=dict[]
for i in range[1,n+1]:
    d[i]=i*i

print [d]
1

bài 23

  • câu hỏi.  

Specify a class with generator can repeat the numbers in the distance 0 and n, and chia hết cho 7

  • Gợi ý

Sử dụng năng suất

  • mẫu mã.  
n=int[input["Nhập vào một số:"]]
d=dict[]
for i in range[1,n+1]:
    d[i]=i*i

print [d]
2

values=input["Nhập vào các giá trị:"]
l=values.split[","]
t=tuple[l]
print [l]
print [t]
0

  • values=input["Nhập vào các giá trị:"]
    l=values.split[","]
    t=tuple[l]
    print [l]
    print [t]
    1

Một Robot di chuyển trong mặt phẳng bắt đầu từ điểm đầu tiên [0,0]. Robot có thể di chuyển theo hướng LÊN, XUỐNG, TRÁI và PHẢI với các bước định trước nhất. Dấu di chuyển của robot được đánh dấu như sau

LÊN 5

XUỐNG 3

TRÁI 3

QUYỀN 3

Các con số phía sau hướng di chuyển chính là bước số đi. Hãy viết chương trình để tính toán khoảng cách từ vị trí hiện tại đến vị trí ban đầu, sau khi robot đã di chuyển một khoảng cách. Nếu khoảng cách là một số phân tích chỉ cần ở nguyên gần nhất

Ví dụ. If tuple after here is input of program

LÊN 5
XUỐNG 3
TRÁI 3
RÚT 2

 

then head will be 2

  • Gợi ý

Trong trường hợp dữ liệu đầu vào được nhập vào chương trình, nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển

  • mẫu mã.  
  • n=int[input["Nhập vào một số:"]]
    d=dict[]
    for i in range[1,n+1]:
        d[i]=i*i
    
    print [d]
    3

bài 25.  

  • câu hỏi.  

Viết chương trình tính toán tần số từ đầu vào. Đầu ra được xuất ra sau khi đã sắp xếp theo bảng chữ cái

Input input description is. Bạn mới sử dụng Python hoặc đang chọn giữa Python 2 và Python 3?

Thì đầu ra phải là

 

2. 2
3. 1
3?. 1
Mới. 1
Trăn. 5
Đọc. 1
và. 1
giữa. 1
đang chọn. 1
hoặc. 2
đến. 1

  • Gợi ý

​Trong trường hợp dữ liệu đầu vào được cung cấp cho câu hỏi, nó phải được giả định là đầu vào được nhập từ giao diện điều khiển

  • values=input["Nhập vào các giá trị:"]
    l=values.split[","]
    t=tuple[l]
    print [l]
    print [t]
    2
  • n=int[input["Nhập vào một số:"]]
    d=dict[]
    for i in range[1,n+1]:
        d[i]=i*i
    
    print [d]
    4

bài 26.  

  • câu hỏi.  

​Định nghĩa 1 hàm có thể tính tổng hai số

  • Gợi ý

​Định nghĩa 1 hàm với 2 tham số là đối số. Bạn có thể tính tổng trong hàm và trả về giá trị

  • values=input["Nhập vào các giá trị:"]
    l=values.split[","]
    t=tuple[l]
    print [l]
    print [t]
    2
  • n=int[input["Nhập vào một số:"]]
    d=dict[]
    for i in range[1,n+1]:
        d[i]=i*i
    
    print [d]
    5

bài 27

  • câu hỏi.  

Định nghĩa một hàm có thể chuyển số nguyên thành chuỗi và trong đó nó ra giao diện điều khiển

  • Gợi ý

Use str[] to convert a number to string

  • mẫu mã.  

values=input["Nhập vào các giá trị:"]
l=values.split[","]
t=tuple[l]
print [l]
print [t]
4

n=int[input["Nhập vào một số:"]]
d=dict[]
for i in range[1,n+1]:
    d[i]=i*i

print [d]
6

 

bài 28.  

  • câu hỏi.  

Định nghĩa hàm có thể nhận hai số nguyên trong chuỗi định dạng và tính tổng của chúng, sau đó trong tổng giao diện điều khiển

  • Gợi ý

Use int[] to convert a integer string

  • mẫu mã.  
  • n=int[input["Nhập vào một số:"]]
    d=dict[]
    for i in range[1,n+1]:
        d[i]=i*i
    
    print [d]
    7

bài 29.  

  • câu hỏi.  

Định nghĩa hàm có thể nhận 2 chuỗi từ đầu vào và kết nối chúng sau đó trong ra giao diện điều khiển

  • Gợi ý

Use + to connect the string

  • mẫu mã.  
  • n=int[input["Nhập vào một số:"]]
    d=dict[]
    for i in range[1,n+1]:
        d[i]=i*i
    
    print [d]
    8
    values=input["Nhập vào các giá trị:"]
    l=values.split[","]
    t=tuple[l]
    print [l]
    print [t]
    4
  • bài 30
  • câu hỏi.  

Định nghĩa một hàm có đầu vào là 2 chuỗi và trong chuỗi có độ dài lớn hơn trong giao diện điều khiển. Nếu 2 chuỗi có chiều dài như nhau thì trong tất cả các chuỗi theo dòng

Chủ Đề