Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit d280a57

Browse files
feat(day04): 新增 Day04 学习笔记
1 parent 9fd2bdb commit d280a57

File tree

4 files changed

+269
-0
lines changed

4 files changed

+269
-0
lines changed

‎day04/code/practice1.py‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
"""
2+
输入一个正整数判断它是不是素数
3+
素数:只能被 1 和它本身整除的数(1 不是素数)
4+
5+
Version: 1.0.0
6+
Author: Jalan
7+
Date: 2019年05月21日
8+
"""
9+
10+
import math
11+
12+
num = int(input("请输入一个整数:"))
13+
end = int(math.sqrt(num))
14+
15+
is_prime = True
16+
for i in range(2, end + 1):
17+
if num % i == 0:
18+
is_prime = False
19+
break
20+
21+
if is_prime and num != 1:
22+
print("%d 是素数" % num)
23+
else:
24+
print("%d 不是素数" % num)

‎day04/code/practice2.py‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
"""
2+
输入两个正整数计算最大公约数和最小公倍数
3+
4+
Version: 1.0.0
5+
Author: Jalan
6+
Date: 2019年05月21日
7+
"""
8+
9+
x = int(input("x = "))
10+
y = int(input("y = "))
11+
12+
if x > y:
13+
x, y = y, x
14+
15+
for factor in range(x, 0, -1):
16+
if x % factor == 0 and y % factor == 0:
17+
print("%d 和 %d 的最大公约数为 %d" % (x, y, factor))
18+
print("%d 和 %d 的最小公倍为 %d" % (x, y, x * y // factor))
19+
break

‎day04/code/practice3.py‎

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
"""
2+
打印各种三角形图案
3+
4+
*
5+
**
6+
***
7+
****
8+
*****
9+
10+
*
11+
**
12+
***
13+
****
14+
*****
15+
16+
*
17+
***
18+
*****
19+
*******
20+
*********
21+
22+
Version: 0.1
23+
Author: Jalan
24+
Date: 2019年05月21日
25+
"""
26+
27+
row = int(input("请输入行数:"))
28+
29+
# 第一种三角形:第 x 行打印出 x 个星号
30+
for i in range(row):
31+
for _ in range(i + 1):
32+
print("*", end="")
33+
print()
34+
35+
# 第二种三角形:第 x 行打印 row - x 个空格和 x 个星号
36+
for i in range(row):
37+
row_num = i + 1
38+
space = row - row_num
39+
40+
for _ in range(space):
41+
print(" ", end="")
42+
43+
for _ in range(row_num):
44+
print("*", end="")
45+
46+
print()
47+
48+
# 第三种三角形:每一行的星号数量是 1, 3, 5, 7, 9......
49+
50+
# 最后一行星号数量
51+
max_num = 2 * row - 1
52+
53+
for i in range(row):
54+
row_num = i + 1
55+
# 当前行星号数量
56+
star_num = row_num * 2 - 1
57+
# 当前行左右分别存在空格数量
58+
space = int((max_num - star_num) / 2)
59+
60+
for _ in range(space):
61+
print(" ", end="")
62+
63+
for _ in range(star_num):
64+
print("*", end="")
65+
66+
print()

‎day04/index.md‎

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
# Day04 - 循环结构
2+
3+
- `for-in`:明确的知道循环执行的次数或者是要对一个容器进行迭代
4+
- `while`:不知道具体循环次
5+
- [range() 函数用法](https://www.runoob.com/python/python-func-range.html)
6+
7+
## 练习
8+
9+
### 练习1:输入一个数判断是不是素数
10+
11+
```python
12+
"""
13+
输入一个正整数判断它是不是素数
14+
素数:只能被 1 和它本身整除的数(1 不是素数)
15+
16+
Version: 1.0.0
17+
Author: Jalan
18+
Date: 2019年05月21日
19+
"""
20+
21+
import math
22+
23+
num = int(input("请输入一个整数:"))
24+
end = int(math.sqrt(num))
25+
26+
is_prime = True
27+
for i in range(2, end + 1):
28+
if num % i == 0:
29+
is_prime = False
30+
break
31+
32+
if is_prime and num != 1:
33+
print("%d 是素数" % num)
34+
else:
35+
print("%d 不是素数" % num)
36+
```
37+
38+
### 练习2:输入两个正整数,计算最大公约数和最小公倍数
39+
40+
```python
41+
"""
42+
输入两个正整数计算最大公约数和最小公倍数
43+
44+
Version: 1.0.0
45+
Author: Jalan
46+
Date: 2019年05月21日
47+
"""
48+
49+
x = int(input("x = "))
50+
y = int(input("y = "))
51+
52+
if x > y:
53+
x, y = y, x
54+
55+
for factor in range(x, 0, -1):
56+
if x % factor == 0 and y % factor == 0:
57+
print("%d%d 的最大公约数为 %d" % (x, y, factor))
58+
print("%d%d 的最小公倍为 %d" % (x, y, x * y // factor))
59+
break
60+
```
61+
62+
知识点:
63+
64+
- 最大公约数和最小公倍数的求法(???😓)
65+
- 学习了新的方法 `range(x, 0, -1)`,之前如果要反序的话我一般会用 `reversed(range(0, x + 1))`
66+
67+
### 练习3:打印三角形图案
68+
69+
```python
70+
"""
71+
打印各种三角形图案
72+
73+
*
74+
**
75+
***
76+
****
77+
*****
78+
79+
*
80+
**
81+
***
82+
****
83+
*****
84+
85+
*
86+
***
87+
*****
88+
*******
89+
*********
90+
91+
Version: 0.1
92+
Author: Jalan
93+
Date: 2019年05月21日
94+
"""
95+
96+
row = int(input("请输入行数:"))
97+
98+
# 第一种三角形:第 x 行打印出 x 个星号
99+
for i in range(row):
100+
for _ in range(i + 1):
101+
print("*", end="")
102+
print()
103+
104+
# 第二种三角形:第 x 行打印 row - x 个空格和 x 个星号
105+
for i in range(row):
106+
row_num = i + 1
107+
space = row - row_num
108+
109+
for _ in range(space):
110+
print(" ", end="")
111+
112+
for _ in range(row_num):
113+
print("*", end="")
114+
115+
print()
116+
117+
# 第三种三角形:每一行的星号数量是 1, 3, 5, 7, 9......
118+
119+
# 最后一行星号数量
120+
max_num = 2 * row - 1
121+
122+
for i in range(row):
123+
row_num = i + 1
124+
# 当前行星号数量
125+
star_num = row_num * 2 - 1
126+
# 当前行左右分别存在空格数量
127+
space = int((max_num - star_num) / 2)
128+
129+
for _ in range(space):
130+
print(" ", end="")
131+
132+
for _ in range(star_num):
133+
print("*", end="")
134+
135+
for _ in range(space):
136+
print(" ", end="")
137+
138+
print()
139+
```
140+
141+
```
142+
*
143+
***
144+
*****
145+
*******
146+
*********
147+
```
148+
149+
打印第三种三角形👆的时候,我分了前、中、后三段进行打印。后面看了骆昊老师的代码:
150+
151+
```python
152+
for i in range(row):
153+
for _ in range(row - i - 1):
154+
print(' ', end='')
155+
for _ in range(2 * i + 1):
156+
print('*', end='')
157+
print()
158+
```
159+
160+
第三段的空格根本不用打嘛,傻了傻了🤦‍♂......

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /