python判断循环语句之基础项目实战

  1. 1. 实战题目
  2. 2. 题目一
    1. 2.1. 一、输入数值
    2. 2.2. 二、存入数值
    3. 2.3. 三、判断最小值
    4. 2.4. 四、建立临时变量
    5. 2.5. 五、判断数值大小
    6. 2.6. 完整代码
  3. 3. 题目二
    1. 3.1. 一、上边长
    2. 3.2. 二、中间部分
    3. 3.3. 三、下边长
  4. 4. 题目三
    1. 4.1. 范例一
    2. 4.2. 范例二

本次所涉及到的知识有:判断语句、循环语句、字符格式化、转义符、条件判断语句。

实战题目

题目

(一)输入三个整数,按照从小到大的顺序输出它们的值。

(二)编写一个程序,用户输入整数a,a的取值范围为2~20,自动打印一个边长为a的正方形。例如,用户输入a为5,则输出一个以5个*为边长且中间为空的正方形。

1
2
3
4
5
* * * * *
* *
* *
* *
* * * * *

(三)编写程序,输出九九乘法表。

题目一

首先分析一下题目,输入三个整数的前提是随机的,所以我会使用input作为输出的条件并使用最为基础的判断语句和循环语句去实现该题目的结果。

一、输入数值

定义三个整数为a、b、c,并给它们进行包装成用户可以使用的变量。

1
2
3
4
a = int(input("请输入第一个数"))
b = int(input("请输入第二个数"))
c = int(input("请输入第三个数"))
print("从小到大的顺序输出三个值为:")

二、存入数值

如果我们使用基础的判断和循环,就需要一个列表来存储数据并对它进行遍历。

1
number = [a,b,c]

三、判断最小值

我的思路是对随机的三个整数进行判断,判断它们之间谁是最小的数值,获得最小值之后就不需要对它进行任何操作,并且还可以减少判断的条件,只对不是最小值的两个数进行判断。

1
2
3
for i in number:
if i < b and i < c or i < a and i < c or i < a and i < b:
print(i)

四、建立临时变量

因为最小值被找出来,但是它还是存在这个程序当中,所以我将建立临时变量来对最小值进行排除,并对最后的判断做铺垫。

1
2
3
4
5
6
7
8
9
10
d = i
number1 = 0
number2 = 0
number3 = 0
if d < a and d != a:
number1 = a
if d < b and d != b:
number2 = b
if d < c and d != c:
number3 = c

初始化所有的临时变量为0。

五、判断数值大小

这时我们需要对哪一个临时变量为0(最小值)进行判断,如果某个临时变量为0时,其中两个临时变量可以相互判断谁是midden,并从小到大输出从原有变量的数值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if number1 == 0:
if number2 > number3:
print(number3)
print(number2)
else:
print(number2)
print(number3)
if number2 == 0:
if number1 > number3:
print(number3)
print(number1)
else:
print(number1)
print(number3)
if number3 == 0:
if number2 > number1:
print(number1)
print(number2)
else:
print(number2)
print(number1)

完整代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#输入数字
a = int(input("请输入第一个数"))
b = int(input("请输入第二个数"))
c = int(input("请输入第三个数"))
print("从小到大的顺序输出三个值为:")
#把数字存到一个number的列表里
number = [a,b,c]
#遍历这个列表中所有的数字
for i in number:
#判断最小的那个数
if i < b and i < c or i < a and i < c or i < a and i < b:
#打印出来那个最小的数值
print(i)
#把最小的数值存在另外一个变量中
d = i
#生成存储初始变量,用于后面的判断
number1 = 0
number2 = 0
number3 = 0
#这三个if判断某值是否为最小值,如果是就不赋值给初始变量
if d < a and d != a:
number1 = a
if d < b and d != b:
number2 = b
if d < c and d != c:
number3 = c
#下面所有判断是判断数值是否为0,之后对其中两个相互判断,得出midden。
#最后输出max。
if number1 == 0:
if number2 > number3:
print(number3)
print(number2)
else:
print(number2)
print(number3)
if number2 == 0:
if number1 > number3:
print(number3)
print(number1)
else:
print(number1)
print(number3)
if number3 == 0:
if number2 > number1:
print(number1)
print(number2)
else:
print(number2)
print(number1)

题目二

这个题目我将分为3个部分的代码进行编写:上边长、中间部分、下边长。

一、上边长

通过用户所输入的数据,并将所需边长的正方形进行打印。

1
a = int(input("请输入你所需要的边长的正方形:"))

之后通过for循环打印所需*的上边长。

1
2
3
for i in range(a):
print("*",end=" ")
print()

print()是阻止之后所打印的*和上面的相连。

二、中间部分

因为中间部分所打印的*是减去2的用户所输入数值(a-2),所以在使用循环语句时,需要对a进行减2数值的判断。

1
2
3
j = 1
while j <= a-2:
j += 1

这样就可以打印中间所需几列*的多少;在这之后需要对星号进行打印和打印空格,保证中间是空的,所以通过for循环对if进行遍历和判断。

1
2
3
4
5
6
7
for i in range(a):
if i == 0:
print("*",end=" ")
if i != 0 and i != a-1:
print(" ",end="")
if i == a-1:
print("*")

如果i为0时就打印这一行的第一个的星号,之后打印空格作为下面的空格的补充并连接下面所输出的空格;如果i不为0且i不等于用户所输入的数值减一时就打印空格,比如a为5时,i在循环到1~3时就打印两个空格,总共合起来就是6个空格,加上之前所打印的空格刚好满足5所需要的7个空格的距离;最后当i为用户所输入的数值减一的数值时,就打印最后一个空格,和上面的条件相反。

三、下边长

下边长和上边长一样就不做过多赘述。

1
2
for i in range(a):
print("*",end=" ")

完整代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#输入值
a = int(input("请输入你所需要的边长的正方形:"))
#通过if判断并打印所需正方形的上边长
for i in range(a):
#打印*和空格
print("*",end=" ")
#阻止下面的print和上面的print相连
print()
#创建一个数值为1的变量
j = 1
#打印正方形中间的*和空格,因为上边和下边的关系所以在a值得基础上减2
while j <= a-2:
j += 1
#对i进行遍历
for i in range(a):
#判断如果在第0列时就打印一个*,如果不是在0列且不在最后一列就打印空格
if i == 0:
print("*",end=" ")
if i != 0 and i != a-1:
print(" ",end="")
#最后一列输出*
if i == a-1:
print("*")
#打印正方形的下边长
for i in range(a):
print("*",end=" ")

题目三

作为题目三我以为是最难的一个,但是没想到的是,做完题目一和题目二发现题目三是最简单的一个,但是它是一个有很多可能性的题目,下面我将描述我自己做的(范例一)和我在其他教学视频所学到的方法(范例二)

范例一

我的想法是通过定义一个固定的变量,之后使用题目二所用到循环的方法去循环每一个数值所得乘机的大小,并使用转义符\t对齐打印出来。

完整代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
number = 10
j = 1
for i in range(number):
if i == 1:
one = i * 1
print(i,'*',i,'=',one)
#通过判断是否为所对应数值就循环几次并对数值进行计算
if i == 2:
while j <= i:
two = j * i
print(j,'*',i,'=',two,end="\t")
j += 1
print()
if i == 3:
j = 1
while j <= i:
three = j * i
print(j,'*',i,'=',three,end="\t")
j += 1
print()
if i == 4:
j = 1
while j <= i:
four = j * i
print(j,'*',i,'=',four,end="\t")
j += 1
print()
if i == 5:
j = 1
while j <= i:
five = j * i
print(j,'*',i,'=',five,end="\t")
j += 1
print()
if i == 6:
j = 1
while j <= i:
six = j * i
print(j,'*',i,'=',six,end="\t")
j += 1
print()
if i == 7:
j = 1
while j <= i:
seven = j * i
print(j,'*',i,'=',seven,end="\t")
j += 1
print()
if i == 8:
j = 1
while j <= i:
eight = j * i
print(j,'*',i,'=',eight,end="\t")
j += 1
print()
if i == 9:
j = 1
while j <= i:
nine = j * i
print(j,'*',i,'=',nine,end="\t")
j += 1

范例二

范例二所使用的是while循环的方法,但是它直接先定义了一个简单的公式i * j = (i * j),之后通过数值去套用这个公式并打印输出,最后使用字符格式化的形式让公式可以直接赋值和转义符\t来对每一个打印出来的公式进行对齐。

完整代码

1
2
3
4
5
6
7
8
9
j = 1
while j <= 9:
i = 1
while i <= j:
#通过字符格式化来对各个变量进行计算并打印,最后以\t进行对齐
print(f'{i} * {j} = {i*j}',end="\t")
i += 1
print()
j += 1