存钱挑战

第一周存钱10块,每一周比上一周多存10块钱,一共存52周
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def main():
totalWeek = input("请输入存钱周数:")
week = 0
saveMoney = 0
totalMoney = 0

try:
while week < int(totalWeek):
week += 1
saveMoney += 10
totalMoney += saveMoney
print("第 {} 周,存钱 {},共存钱 {} 块".format(week, saveMoney, totalMoney))
except ValueError:
print("请输入正确的数字!")
except:
print("程序异常")

if __name__ == "__main__":
main()

list 列表

列表是有序的元素集合,每个元素类型可以不同
可以通过索引访问单个元素,list[2]
可以通过区间索引访问子列表内容,list[2:4]、list[-3:]
list1 + list2 合并两个列表
list * n 重复 n 次列表内容
len(list) 返回列表长度
x in list 检查元素是否在列表中

list 常用方法

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

list = [2, 8, 6, 25, 13]

#将x添加到列表末尾
list.append(100)
# -> [2, 8, 6, 25, 13, 100]

#列表排序
list.sort();
# -> [2, 6, 8, 13, 25, 100]

#列表逆序
list.reverse()
# -> [100, 25, 13, 8, 6, 2]

#返回第一次出现元素x的索引值
list.index(2)
# -> 5

#在位置i处插入新元素x
list.insert(1,8)
# -> [100, 8, 25, 13, 8, 6, 2]

#返回列表中元素x的数量
list.count(8)
# -> 2

#删除第一次出现的元素x
list.remove(8)
# -> [100, 25, 13, 8, 6, 2]

#返回i位置上的数,并且删除列表中i位置上的元素
list.pop(1)
# -> 25
# -> [100, 13, 8, 6, 2]

使用列表,实现存钱挑战

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import math

def main():
totalWeek = input("请输入存钱周数:")
week = 0
saveMoney = 0

money_list = []

try:
while week < int(totalWeek):
week += 1
saveMoney += 10
money_list.append(saveMoney)
totalMoney = math.fsum(money_list)
print("第 {} 周,存钱 {},共存钱 {} 块".format(week, saveMoney, totalMoney))
except ValueError:
print("请输入正确的数字!")
except:
print("程序异常")

if __name__ == "__main__":
main()

for 循环

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
import math

def main():
totalWeek = input("请输入存钱周数:")

totalMoney = 0
money_list = []

try:
for i in range(int(totalWeek)):
saveMoney = (i+1) * 10
money_list.append(saveMoney)

totalMoney = math.fsum(money_list)
print("第 {} 周,存钱 {},共存钱 {} 块".format(i+1, saveMoney, totalMoney))

except ValueError:
print("请输入正确的数字!")
except:
print("程序异常")

print("函数内局部变量,totalMoney:", totalMoney)
return totalMoney

if __name__ == "__main__":
totalMoney = 0;
print("函数外全局变量,totalMoney:", totalMoney)
totalMoney = main()
print("函数外全局变量,totalMoney,接收函数返回值:", totalMoney)

range

1
2
range(15)
# -> [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]

math 常用方法

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
#取大于等于x的最小的整数值
math.ceil(4.12)
# -> 5

#floor()取小于等于x的最大的整数值
math.floor(4.999)
# -> 4

#fmod()得到x/y的余数,其值是一个浮点数
math.fmod(20,3)
# -> 2.0

#e表示一个常量
math.e
# -> 2.718281828459045

#fabs()返回x的绝对值
math.factorial(-0.03)
# -> 0.03

#factorial()取x的阶乘的值
math.factorial(3)
# -> 6

#isnan()如果x不是数字True,否则返回False
math.isnan(23)
# -> False

#pow()返回x的y次方
math.pow(3,4)
# -> 81.0

#trunc()返回x的整数部分
math.trunc(6.789)
# -> 6

datetime

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import datetime
#获取当前日期和时间
datetime.datetime.now()

#解析时间字符串
datetime.datetime.strptime("2017-08-05", format("%Y-%m-%d"))
# -> datetime.datetime(2017, 8, 5, 0, 0)

datetime.datetime.strftime(now, "%d/%m/%Y")
# -> "05/08/2017"

#返回年,周数,周几
isocalendar()