Python教程

python刷题第六周

本文主要是介绍python刷题第六周,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

# 以下是有所收获的题目:
# 第一题

第4章-24 打印九九口诀表 (15 分) 下面是一个完整的下三角九九口诀表:

1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 本题要求对任意给定的一位正整数N,输出从1*1到N*N的部分口诀表。

输入格式: 输入在一行中给出一个正整数N(1≤N≤9)。

输出格式: 输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。

## 我的代码:

```c
n = int(input())
for x in range(n + 1):
for y in range(x):
if y != x - 1:
if (y + 1) * x < 10:
print("%d*%d=%d" % (y + 1, x, (y + 1) * x), " ", end="")
else:
print("%d*%d=%d" % (y + 1, x, (y + 1) * x), " ", end="")
else:
print("%d*%d=%d" % (y + 1, x, (y + 1) * x))
```


## 别人的:

```c
n=int(input())
for i in range(1,n+1):
for j in range(1,i+1):
print("{:d}*{:d}={:<4d}".format(j,i,i*j),end="")
print()
```
## ==收获:==
1.对于每一行的最后一个元素输出后要换行,可以在循环结束后print()来实现,而没必要加一个if语句。
2.学习了:`print("{:d}*{:d}={:<4d}".format(j,i,i*j),end="")`这样的格式输出。
更多关于format函数的知识:[~点这里~](https://www.runoob.com/python/att-string-format.html)

# 第二题

> 第4章-25 输出三角形字符阵列 (15 分) 本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。
>
> 输入格式: 输入在一行中给出一个正整数n(1≤n<7)。
>
> 输出格式: 输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。

## 我的代码:

```c
n = int(input())
index = ord('A')
for x in range(n, 0, -1):
for y in range(x):
print(chr(index), end=" ")
index += 1
print()
```
## ==收获:==
1.这道题主要考察了ASCII码与字符的转换:
对于字母,可以通过ord()来得到其对应的ascii码;
然后可以通过chr()对应的ascii码来得到对应的字符。

# 第三题:

> 第4章-27 二维数组中每行最大值和每行和 (10 分) 求一个3*3二维数组中每行的最大值和每行的和。
>
> 输入格式: 在一行中输入9个小于100的整数,其间各以一个空格间隔
>
> 输出格式: 输出3行3列的二维数组,并在每行后面分别输出每行最大值和每行元素的和,每个数据输出占4列。

## 我的代码:

```c
ls = list(map(int, input().split()))
x = 0
for i in range(1, 4):
s = 0
m = []
while x < 3 * i:
s += ls[x]
m.append(ls[x])
print("{:4d}".format(ls[x]), end="")
x += 1
print("{:4d}{:4d}".format(max(m), s), end="")
print()
```
## ==收获==
1.对format格式化输出函数理解更深了。
在提交答案过程中经常有格式错误,有一个点在于每个数据占4位
只有`print("{:4d}{:4d}".format(max(m), s), end="")`这样才能实现这种效果;
如果写成:`print("{:>4d}".format(max(m)), "{:>4d}".format(max(m)), end="")`的话,则不符合。

这篇关于python刷题第六周的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!