第一周课程总结
Python基础
对Python的历史有了更深的了解,明白了Python具有强大的跨平台功能,更加深入了解了Python对数据分析与数据挖掘的的重要性。
同时,能够熟练地运用Python的交互式环境以及集成开发环境 - PyCharm。
Python语言元素之变量
对变量的类型(int、float、str、bool)进一步加深了解,掌握了变量命名的几大重要规则,以及对变量的熟练使用。
如:bin()函数用于转换为二进制;oct()函数用于转换为八进制;hex()函数用于转换为十六进制。
"""
整数表示法
"""
a = 100
b = 0o110
c = 0x110
d = 0b110
e = 123e-5
print(a, b, c, d, e)
print(bin(6))
print(oct(72))
print(hex(272))
Python语言元素之运算符
- 算术运算符:加(+)、减(-)、乘(*)、除(/)、整除(//)、求余/求模(%)、求幂(**)
- 比较运算符:等号(==)、大于(>)、小于(<)、大于等于(>=)、
小于等于(<=)、不等于(!=) - 逻辑运算符:and(和/与)、or(或)、not(非)
"""
example08 - Python中的运算符
- 赋值运算符:右边的值赋给左边(变量)
- 算术运算符:+ - * / // % **
- 复合的赋值运算符:+= -= *= /= ...
- 关系运算符:> < >= <= == != ---->产生布尔值(True/False)
- 逻辑运算符(把多个bool值处理成一个bool值):and / or / not
Author: Asus
Date: 2021/7/20
"""
a = 5
b = 3
a += b
a *= b + 2
print(a)
print(a > b)
print(a != b)
print(a <= b)
print(True and True)
print(True and False)
print(False or False)
print(True or False)
print(not True)
附加:了解了占位符(%f)和格式化字符串(f - format)的使用
"""
example06 - 占位符%f
Author: Asus
Date: 2021/7/20
"""
a1 = float(input('a1 = '))
b2 = float(input('b2 = '))
print('%.1f + %.1f = %.1f' % (a1, b2, a1 + b2))
print('%.2f - %.2f = %.2f' % (a1, b2, a1 - b2))
print('%.1f * %.2f = %.3f' % (a1, b2, a1 * b2))
print('%f / %f = %f' % (a1, b2, a1 / b2))
print('%f // %f = %f' % (a1, b2, a1 // b2))
print('%f %% %f = %f' % (a1, b2, a1 % b2))
print('%f ** %f = %f' % (a1, b2, a1 ** b2))
"""
example08 - format - 格式化字符串
Author: Asus
Date: 2021/7/20
"""
a1 = float(input('a1 = '))
b2 = float(input('b2 = '))
c = bool(input('c = '))
d = bool(0)
print(f'{a1} + {b2} = {a1 + b2:.1f}')
print(f'{a1} - {b2} = {a1 - b2:.2f}')
print(f'{a1} * {b2} = {a1 * b2:.3f}')
print(f'{a1} / {b2} = {a1 / b2:.4f}')
print(f'{a1} // {b2} = {a1 // b2:.1f}')
print(f'{a1} % {b2} = {a1 % b2:.1f}')
print(f'{a1} ** {b2} = {a1 ** b2:.1f}')
print(c, d)
Python分支与循环结构
- 分支结构:if、if…else、if…elif…else
从对分段函数和用户登录的练习对分支结构有了更深一步的理解与运用。 - 循环结构:for - in、while(for - in循环次数可知;while循环次数不知)
在for - in循环中,对range运用进一步明确;通过1到100求和,加深了对for - in循环的理解,在运用方面更加熟练。 通过对“找出最大公约数”的例子对while有了一个大致的了解。
附加:break:表示结束它所在的全部循环;cuntinue:表示只结束本次循环
通过几个经典案例(求100到999之间的水仙花数;xyzwh... 翻转成...hwzyx ;判断一个正整数是不是素数;找出1到100之间的所有素数;输入三角形三条边的长度,如果能构成三角形就计算周长和面积;如果不能构成,提示用户重新输入,直到正确)的练习,对Python分支结构与循环结构的运用更加熟练。
练习
"""
example05 - 输入一个n,输出n个斐波拉切数
1 1 2 3 5 8 13 21 34 55 ...
1 2 3 5 8 13 21
Author: Asus
Date: 2021/7/22
"""
n = int(input('n = '))
a = 1
b = 1
print(a, b, sep='\n')
for _ in range(2, n):
a, b = b, a + b
print(b)
"""
example06 - 百钱百鸡
鸡翁x-值钱5,鸡母y-值钱3,鸡雏z三值钱1,用百钱买百鸡,问鸡翁、鸡母、鸡雏各几何
Author: Asus
Date: 2021/7/22
"""
for x in range(0, 21):
for y in range(0, 34):
z = 100 - x - y
if z % 3 == 0 and 5 * x + 3 * y + z // 3 == 100:
print(x, y, z)
"""
example07 - 五个人晚上去捕鱼,捕了不计其数的鱼,然后累了去睡觉。
第二天,A第一个醒来,把鱼分成了五分,扔掉了多余的1条,然后拿走了自己的一份
B第二个醒过来,以为鱼没分过,把剩下的鱼分成了5份,扔掉多余的1条,拿走自己的一份
C、D、E依次醒来,按照同样方法分鱼。
问他们捕了多少鱼?
Author: Asus
Date: 2021/7/22
"""
fish = 6
while True:
is_enough = True
total = fish
for _ in range(5):
if (total - 1) % 5 == 0:
total = (total - 1) // 5 * 4
else:
is_enough = False
break
if is_enough:
print(fish)
break
fish += 5
Python的容器型数据类型1 - 列表(list)
列表(list):把元素放在方括号内用逗号分隔开。
- 可以用一个变量存储多个元素。
- 允许空列表的存在。如:list = [ ]
通过索引对列表中的元素进行提取和修改
nums = [35, 98, 12, 27, 66, ]
print(nums[0])
print(nums[-5])
nums[2] = 100
print(nums)
通过进一步使用列表对问题进行求解,提高了代码的可读性。
"""
example01 - 将两颗骰子摇60000次,统计每一面出现的次数
Author: Asus
Date: 2021/7/23
"""
import random
f1 = f2 = f3 = f4 = f5 = f6 = f7 = f8 = f9 = f10 = f11 = 0
for _ in range(1, 60001):
a = random.randrange(1, 7)
b = random.randrange(1, 7)
if a + b == 2:
f1 += 1
elif a + b == 3:
f2 += 1
elif a + b == 4:
f3 += 1
elif a + b == 5:
f4 += 1
elif a + b == 6:
f5 += 1
elif a + b == 7:
f6 += 1
elif a + b == 8:
f7 += 1
elif a + b == 9:
f8 += 1
elif a + b == 10:
f9 += 1
elif a + b == 11:
f10 += 1
else:
f11 += 1
print(f'2摇了{f1}次')
print(f'3摇了{f2}次')
print(f'4摇了{f3}次')
print(f'5摇了{f4}次')
print(f'6摇了{f5}次')
print(f'7摇了{f6}次')
print(f'8摇了{f7}次')
print(f'9摇了{f8}次')
print(f'10摇了{f9}次')
print(f'11摇了{f10}次')
print(f'12摇了{f11}次')
如果我们仅仅使用Python的分支结构与循环结构,从上面代码中我们可以看出代码的嵌套层次非常之多。但是,如果我们使用list与之结合进行求解,那么将大大的提高了代码的可读性。如下面代码所示。
"""
example04 -将两颗骰子摇60000次,统计每一面出现的次数
Author: Asus
Date: 2021/7/23
"""
import random
fs = [0] * 11
for _ in range(60000):
face = random.randrange(2, 13)
fs[face - 2] += 1
print(fs)
for i, value in enumerate(fs):
print(f'{i + 2}点摇出了{value}次')
附加:pop():默认删除最后一个元素 append():在列表的最后追加元素 insert():在目标索引前添加函数
nums = [35, 98, 12, 27, 66, ]
print(nums.pop())
print(nums.append())
print(nums.insert())
附加: 先通过enumerate函数对列表进行预处理 循环遍历的时候既可以获取到索引,又可以获取元素
nums = [35, 98, 12, 27, 66, ]
for i, x in enumerate(nums):
print(i, x)
总结
通过第一周对Python的课程学习,不仅对Python的基础(Python历史、Python的搭建环境、PyCharm的使用)有了更深的认识,熟练地运用了Python变量,而且对Python分支结构与循环结构的运用更上一层楼。同时,对列表的使用有了一定的见解(掌握了pop()、append()、insert()、enumerate()函数的使用)。
|