Skip to content

Commit 3c94f28

Browse files
学习递归函数以及切片的使用,学习slice和range内置的函数
1 parent 495140a commit 3c94f28

File tree

4 files changed

+78
-0
lines changed

4 files changed

+78
-0
lines changed

day-07/range.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# range 和 slice有点类似
2+
3+
print(range(10)) # range(0, 10)
4+
5+
print(list(range(10))) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
6+
print(list(range(1, 10))) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
7+
print(list(range(1, 10, 3))) # [1, 4, 7]
8+
9+
10+
# 第三个参数使用负数
11+
print(list(range(8, -16, -3))) # [8, 5, 2, -1, -4, -7, -10, -13]
12+
print(list(range(8, 16, -3))) # [] 注意 start和stop的顺序要和step表示的顺序一致

day-07/recursive-func.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# 递归函数
2+
def factorial(n):
3+
if n == 1:
4+
return 1
5+
return n * factorial(n-1)
6+
7+
print(factorial(10))
8+
9+
## 使用尾递归
10+
## @尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式
11+
def tail_factorial(n, result):
12+
if n == 1:
13+
return result # 这里是关键的一步
14+
return tail_factorial(n-1, n*result)
15+
16+
print(tail_factorial(10, 1))
17+
print(factorial(10))

day-07/slice.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# slice(start, stop, step)
2+
3+
s_obj = slice(1, 3)
4+
5+
nums = [1, 2, 3, 4, 5, 6]
6+
7+
print(nums[s_obj]) # [2, 3]
8+
9+
str = 'Hello,World'
10+
11+
print(str[s_obj]) # el
12+
13+
s_obj_1 = slice(-5, None, -2)
14+
print(str[s_obj_1]) # WolH
15+
16+
s_obj_2 = slice(-5, -1, -2)
17+
print(type(str[s_obj_2])) # <class 'str'>
18+
print(str[s_obj_2] == '') # True

day-07/slicing.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# 使用切片
2+
nums = [1, 2, 3, 4, 5, 6]
3+
print(nums[:]) #原来的nums的一个拷贝
4+
print(nums[:] is nums) # False
5+
print(nums[:] == nums) # True
6+
7+
print(nums[1:3]) # [2, 3]
8+
print(nums[:3]) # [1, 2, 3]
9+
print(nums[1:5:2]) # [2, 4] 不包含6
10+
11+
print(nums[-3:]) # [4, 5, 6]
12+
print(nums[-3:-1]) # [4, 5]
13+
print(nums[-3::2]) # [4, 6]
14+
print(nums[::-1]) # [6, 5, 4, 3, 2, 1]
15+
print(nums[::-2]) # [6, 4, 2]
16+
17+
18+
print(nums[-3::1]) # [4, 5, 6]
19+
20+
print(nums[-3:]) # [4, 5, 6]
21+
print(nums[-3:-1]) # [4, 5]
22+
print(nums[-3::-1]) # [4, 3, 2, 1]
23+
print(nums[-1::-2]) # [6, 4, 2]
24+
25+
print(nums[-1:-4:-2]) # [6, 4]
26+
27+
## 最后一个参数表明了索引的递增顺序以及递增的增量
28+
29+
print('Python'[-1:-4:-1])
30+
31+

0 commit comments

Comments
 (0)