2
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi đã tạo ra một hàm sẽ cung cấp cho tôi một mẫu bảng chữ cái phóng to của chữ K. Tôi đã tạo một hàm khác sẽ in mẫu. Tôi muốn in hai mẫu k bên cạnh nhưng khi tôi thực thi mã, nó in mẫu thứ 2 bên dưới mẫu thứ 1K. I have created another function which will print the pattern. I want to print two pattern K side-by-side but when I execute the code it prints 2nd pattern below the 1st pattern
Tôi giải quyết điều này như thế nào?
def letter_k[pattern]:
k = ''
for row in range[7]:
for col in range[6]:
if[[col == 0] or [[row == 0 or row == 6] and [col == 5]]
or [[row == 1 or row == 5] and [col == 4]]
or [[row == 2 or row == 4] and [col == 3]]
or [[row == 3] and [col == 2]]]:
k = k + pattern
else:
k = k + ' '
k = k + '\n'
return k
def name[]:
print[letter_k['*'],letter_k['+']]
name[]
SMCI
30.7K18 Huy hiệu vàng110 Huy hiệu bạc145 Huy hiệu đồng18 gold badges110 silver badges145 bronze badges
Khi được hỏi ngày 29 tháng 8 năm 2018 lúc 7:29Aug 29, 2018 at 7:29
2
Bạn có thể chia đầu ra của hai cuộc gọi thành
* * + +
* * + +
* * + +
* * + +
* * + +
* * + +
* * + +
5, * * + +
* * + +
* * + +
* * + +
* * + +
* * + +
* * + +
6 chúng, sau đó gia nhập lại chúng:def name[]:
print['\n'.join[' '.join[l] for l in zip[letter_k['*'].split['\n'], letter_k['+'].split['\n']]]]
Với thay đổi này, mã của bạn sẽ xuất ra:
* * + +
* * + +
* * + +
* * + +
* * + +
* * + +
* * + +
Đã trả lời ngày 29 tháng 8 năm 2018 lúc 7:34Aug 29, 2018 at 7:34
blhsingblhsingblhsing
82.1k6 Huy hiệu vàng64 Huy hiệu bạc94 Huy hiệu đồng6 gold badges64 silver badges94 bronze badges
0
Để in các chữ cái cạnh nhau, bạn phải nối các dòng riêng lẻ. Điều đó thường có nghĩa là phân tách các dòng, nối các dòng tương ứng, sau đó đặt các dòng kết hợp lại với nhau. Nó giúp các chữ cái của bạn nằm trong một khối hình chữ nhật, vì vậy bạn không phải tìm ra phần đệm cho mỗi dòng.
k1 = letter_k['*']
k2 = letter_k['+']
lines = [' '.join[rows] for rows in zip[k1.splitlines[], k2.splitlines[]]]
ks = '\n'.join[lines]
print[ks]
Đây là một liên kết IdeOne để chơi với: //ideone.com/oqstfd
Đã trả lời ngày 29 tháng 8 năm 2018 lúc 7:37Aug 29, 2018 at 7:37
Nhà vật lý vật lý điênMad Physicist
101K24 Huy hiệu vàng166 Huy hiệu bạc248 Huy hiệu Đồng24 gold badges166 silver badges248 bronze badges
Trong Python, đối với vòng lặp được sử dụng để in các mẫu khác nhau. In các mẫu khác nhau là câu hỏi lập trình được hỏi phổ biến nhất trong cuộc phỏng vấn. Nhiều vòng cho các vòng được sử dụng để in các mẫu trong đó vòng lặp bên ngoài đầu tiên được sử dụng để in số lượng hàng và vòng bên trong được sử dụng để in số lượng cột. Hầu hết các mẫu sử dụng các khái niệm sau.
- Vòng ngoài để in số lượng hàng.
- Các vòng bên trong để in số lượng cột.
- Biến để in khoảng trắng theo địa điểm cần thiết trong Python.
Trong hướng dẫn này, chúng tôi sẽ thảo luận về một vài mô hình phổ biến.
In hình kim tự tháp, sao và kim cương trong Python
Trong phần này, chúng ta sẽ tìm hiểu các mẫu kim tự tháp phổ biến.
Mẫu - 1: Mẫu kim tự tháp đơn giản
Thí dụ -
Output:
* * * * * * * * * * * * * * *
Explanation:
Trong mã trên, chúng tôi đã khởi tạo biến N để nhập số lượng hàng cho mẫu. Chúng tôi đã nhập n = 5, phạm vi của vòng lặp bên ngoài sẽ là 0 đến 4.
- Việc lặp lại của vòng bên trong cho vòng lặp phụ thuộc vào vòng ngoài. Vòng bên trong có trách nhiệm in số cột.
- Trong lần lặp đầu tiên, giá trị của I là 0 và nó tăng thêm 1, do đó nó trở thành 0+1, bây giờ vòng lặp bên trong được lặp lại lần đầu tiên và in một sao [*].
- Trong lần lặp thứ hai, giá trị của I là 1 và nó tăng thêm 1, do đó nó trở thành 1+1, bây giờ vòng lặp bên trong lặp lại hai lần và in hai sao [*].
- Đối số cuối cùng ngăn chặn nhảy vào một dòng khác. Nó sẽ in ngôi sao cho đến khi vòng lặp hợp lệ.
- Câu lệnh in cuối cùng chịu trách nhiệm kết thúc dòng sau mỗi hàng.
Mẫu - 2: Kim tự tháp góc phải ngược
Thí dụ -
Output:
* * * * * * * * * * * * * * *
Trong mã trên, chúng tôi đã khởi tạo biến N để nhập số lượng hàng cho mẫu. Chúng tôi đã nhập n = 5, phạm vi của vòng lặp bên ngoài sẽ là 0 đến 4.
Việc lặp lại của vòng bên trong cho vòng lặp phụ thuộc vào vòng ngoài. Vòng bên trong có trách nhiệm in số cột.
Output:
Enter the number of rows: 5 * * * * * * * * * * * * * * *
Trong lần lặp đầu tiên, giá trị của I là 0 và nó tăng thêm 1, do đó nó trở thành 0+1, bây giờ vòng lặp bên trong được lặp lại lần đầu tiên và in một sao [*].
Việc lặp lại của vòng bên trong cho vòng lặp phụ thuộc vào vòng ngoài. Vòng bên trong có trách nhiệm in số cột.
Output:
Enter the number of rows: 10 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Trong lần lặp đầu tiên, giá trị của I là 0 và nó tăng thêm 1, do đó nó trở thành 0+1, bây giờ vòng lặp bên trong được lặp lại lần đầu tiên và in một sao [*].
Việc lặp lại của vòng bên trong cho vòng lặp phụ thuộc vào vòng ngoài. Vòng bên trong có trách nhiệm in số cột.
Output:
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Trong lần lặp đầu tiên, giá trị của I là 0 và nó tăng thêm 1, do đó nó trở thành 0+1, bây giờ vòng lặp bên trong được lặp lại lần đầu tiên và in một sao [*].
Việc lặp lại của vòng bên trong cho vòng lặp phụ thuộc vào vòng ngoài. Vòng bên trong có trách nhiệm in số cột.
Output:
Enter the number of rows: 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Trong lần lặp đầu tiên, giá trị của I là 0 và nó tăng thêm 1, do đó nó trở thành 0+1, bây giờ vòng lặp bên trong được lặp lại lần đầu tiên và in một sao [*].
Việc lặp lại của vòng bên trong cho vòng lặp phụ thuộc vào vòng ngoài. Vòng bên trong có trách nhiệm in số cột.
Output:
def name[]:
print['\n'.join[' '.join[l] for l in zip[letter_k['*'].split['\n'], letter_k['+'].split['\n']]]]
0Trong lần lặp đầu tiên, giá trị của I là 0 và nó tăng thêm 1, do đó nó trở thành 0+1, bây giờ vòng lặp bên trong được lặp lại lần đầu tiên và in một sao [*].
Việc lặp lại của vòng bên trong cho vòng lặp phụ thuộc vào vòng ngoài. Vòng bên trong có trách nhiệm in số cột.
Output:
def name[]:
print['\n'.join[' '.join[l] for l in zip[letter_k['*'].split['\n'], letter_k['+'].split['\n']]]]
1Trong lần lặp đầu tiên, giá trị của I là 0 và nó tăng thêm 1, do đó nó trở thành 0+1, bây giờ vòng lặp bên trong được lặp lại lần đầu tiên và in một sao [*].
Trong lần lặp thứ hai, giá trị của I là 1 và nó tăng thêm 1, do đó nó trở thành 1+1, bây giờ vòng lặp bên trong lặp lại hai lần và in hai sao [*].
Đối số cuối cùng ngăn chặn nhảy vào một dòng khác. Nó sẽ in ngôi sao cho đến khi vòng lặp hợp lệ.
Câu lệnh in cuối cùng chịu trách nhiệm kết thúc dòng sau mỗi hàng.
Việc lặp lại của vòng bên trong cho vòng lặp phụ thuộc vào vòng ngoài. Vòng bên trong có trách nhiệm in số cột.
Output:
def name[]:
print['\n'.join[' '.join[l] for l in zip[letter_k['*'].split['\n'], letter_k['+'].split['\n']]]]
2Trong lần lặp đầu tiên, giá trị của I là 0 và nó tăng thêm 1, do đó nó trở thành 0+1, bây giờ vòng lặp bên trong được lặp lại lần đầu tiên và in một sao [*].
Trong lần lặp thứ hai, giá trị của I là 1 và nó tăng thêm 1, do đó nó trở thành 1+1, bây giờ vòng lặp bên trong lặp lại hai lần và in hai sao [*].
Đối số cuối cùng ngăn chặn nhảy vào một dòng khác. Nó sẽ in ngôi sao cho đến khi vòng lặp hợp lệ.
Việc lặp lại của vòng bên trong cho vòng lặp phụ thuộc vào vòng ngoài. Vòng bên trong có trách nhiệm in số cột.
Output:
def name[]:
print['\n'.join[' '.join[l] for l in zip[letter_k['*'].split['\n'], letter_k['+'].split['\n']]]]
3Trong lần lặp đầu tiên, giá trị của I là 0 và nó tăng thêm 1, do đó nó trở thành 0+1, bây giờ vòng lặp bên trong được lặp lại lần đầu tiên và in một sao [*].
Trong lần lặp thứ hai, giá trị của I là 1 và nó tăng thêm 1, do đó nó trở thành 1+1, bây giờ vòng lặp bên trong lặp lại hai lần và in hai sao [*].
Việc lặp lại của vòng bên trong cho vòng lặp phụ thuộc vào vòng ngoài. Vòng bên trong có trách nhiệm in số cột.
Output:
def name[]:
print['\n'.join[' '.join[l] for l in zip[letter_k['*'].split['\n'], letter_k['+'].split['\n']]]]
4Explanation:
Trong lần lặp đầu tiên, giá trị của I là 0 và nó tăng thêm 1, do đó nó trở thành 0+1, bây giờ vòng lặp bên trong được lặp lại lần đầu tiên và in một sao [*].
Trong lần lặp thứ hai, giá trị của I là 1 và nó tăng thêm 1, do đó nó trở thành 1+1, bây giờ vòng lặp bên trong lặp lại hai lần và in hai sao [*].
Việc lặp lại của vòng bên trong cho vòng lặp phụ thuộc vào vòng ngoài. Vòng bên trong có trách nhiệm in số cột.
Output:
def name[]:
print['\n'.join[' '.join[l] for l in zip[letter_k['*'].split['\n'], letter_k['+'].split['\n']]]]
5Trong lần lặp đầu tiên, giá trị của I là 0 và nó tăng thêm 1, do đó nó trở thành 0+1, bây giờ vòng lặp bên trong được lặp lại lần đầu tiên và in một sao [*].
Việc lặp lại của vòng bên trong cho vòng lặp phụ thuộc vào vòng ngoài. Vòng bên trong có trách nhiệm in số cột.
Output:
def name[]:
print['\n'.join[' '.join[l] for l in zip[letter_k['*'].split['\n'], letter_k['+'].split['\n']]]]
6Trong lần lặp đầu tiên, giá trị của I là 0 và nó tăng thêm 1, do đó nó trở thành 0+1, bây giờ vòng lặp bên trong được lặp lại lần đầu tiên và in một sao [*].
Việc lặp lại của vòng bên trong cho vòng lặp phụ thuộc vào vòng ngoài. Vòng bên trong có trách nhiệm in số cột.
Output:
Trong lần lặp đầu tiên, giá trị của I là 0 và nó tăng thêm 1, do đó nó trở thành 0+1, bây giờ vòng lặp bên trong được lặp lại lần đầu tiên và in một sao [*].
Việc lặp lại của vòng bên trong cho vòng lặp phụ thuộc vào vòng ngoài. Vòng bên trong có trách nhiệm in số cột.
Output:
def name[]:
print['\n'.join[' '.join[l] for l in zip[letter_k['*'].split['\n'], letter_k['+'].split['\n']]]]
7Trong lần lặp đầu tiên, giá trị của I là 0 và nó tăng thêm 1, do đó nó trở thành 0+1, bây giờ vòng lặp bên trong được lặp lại lần đầu tiên và in một sao [*].
Việc lặp lại của vòng bên trong cho vòng lặp phụ thuộc vào vòng ngoài. Vòng bên trong có trách nhiệm in số cột.
Output:
def name[]:
print['\n'.join[' '.join[l] for l in zip[letter_k['*'].split['\n'], letter_k['+'].split['\n']]]]
8Trong lần lặp đầu tiên, giá trị của I là 0 và nó tăng thêm 1, do đó nó trở thành 0+1, bây giờ vòng lặp bên trong được lặp lại lần đầu tiên và in một sao [*].
Việc lặp lại của vòng bên trong cho vòng lặp phụ thuộc vào vòng ngoài. Vòng bên trong có trách nhiệm in số cột.
Output:
def name[]:
print['\n'.join[' '.join[l] for l in zip[letter_k['*'].split['\n'], letter_k['+'].split['\n']]]]
9Trong lần lặp đầu tiên, giá trị của I là 0 và nó tăng thêm 1, do đó nó trở thành 0+1, bây giờ vòng lặp bên trong được lặp lại lần đầu tiên và in một sao [*].
Output:
* * + +
* * + +
* * + +
* * + +
* * + +
* * + +
* * + +
0Trong lần lặp thứ hai, giá trị của I là 1 và nó tăng thêm 1, do đó nó trở thành 1+1, bây giờ vòng lặp bên trong lặp lại hai lần và in hai sao [*].
Đối số cuối cùng ngăn chặn nhảy vào một dòng khác. Nó sẽ in ngôi sao cho đến khi vòng lặp hợp lệ.
Câu lệnh in cuối cùng chịu trách nhiệm kết thúc dòng sau mỗi hàng.
Mẫu - 1: mẫu góc bên phải với các ký tự
Mã số -
Output:
* * + +
* * + +
* * + +
* * + +
* * + +
* * + +
* * + +
1Giải trình -
Trong mã trên, chúng tôi đã gán giá trị số nguyên 65 cho biến asciivalue là giá trị ASCII của A. Chúng tôi đã xác định cho vòng lặp để in năm hàng. Trong phần thân vòng bên trong, chúng tôi đã chuyển đổi giá trị ASCII thành ký tự bằng hàm char []. Nó sẽ in các bảng chữ cái, tăng asciivalue sau mỗi lần lặp.asciiValue variable which is an ASCII value of A. We defined for loop to print five rows. In the inner loop body, we converted the ASCII value into the character using the char[] function. It will print the alphabets, increased the asciiValue after each iteration.
Mẫu - 2: Mẫu hình góc phải có cùng ký tự
Mã số -
Output:
* * + +
* * + +
* * + +
* * + +
* * + +
* * + +
* * + +
2Giải trình -
Mã số -
Output:
* * + +
* * + +
* * + +
* * + +
* * + +
* * + +
* * + +
3Giải trình -
Trong mã trên, chúng tôi đã gán giá trị số nguyên 65 cho biến asciivalue là giá trị ASCII của A. Chúng tôi đã xác định cho vòng lặp để in năm hàng. Trong phần thân vòng bên trong, chúng tôi đã chuyển đổi giá trị ASCII thành ký tự bằng hàm char []. Nó sẽ in các bảng chữ cái, tăng asciivalue sau mỗi lần lặp.
Mã số -
Output:
* * + +
* * + +
* * + +
* * + +
* * + +
* * + +
* * + +
4Giải trình -