第一周总结
1.编程环境搭建
- 工欲善其事,必先利其器,搭建好整个python环境对我们学习来说尤为重要。要进行python开发,需要先安装python解释器。由于python是解释型编程语言,所以需要一个解释器,这样才能运行编写的代码。这里说的安装python实际上就是安装python解释器。具体安装的整个细节可以看我前几篇文章。
2.知识汇总(简答函数+一道例题)
1.进制转化
a = 110
b = 0o110
# 十进八进制
c = 0x110
# 十进十六进制
d = 0b110
# 十进二进制
print(a, b, c, d)
print(bin(47))
# 十进二进制
print(oct(47))
# 十进八进制
print(hex(47))
# 十进16进制
2.分支结构:if-else,和if-elif-else
"""
3x-5 , x>1
f(x) x+2 , -1<=x<=1
5x+3 , x<-1
"""
x = float(input('请输入x的值:'))
if x > 1:
y = 3*x - 5
elif x >= -1:
y = x + 2
else:
y = 5*x + 3
print('输出结果:', y)
# 第一种写法
x = float(input('请输入x的值:'))
if x > 1:
y = 3*x - 5
else:
if x >= -1:
y = x + 2
else:
y = 5*x + 3
print('输出结果:', y)
# 第二种写法
在对比之下,第一种会更方便,因为第二周if里面又套了一个if。会显得结构很复杂在[Python之禅]中有这么一句话:“Flat is better than nested”。之所以提倡代码“扁平化”是因为嵌套结构的嵌套层次如果很多,会严重的影响代码的可读性,所以能使用扁平化结构时就不要使用嵌套结构。
3.循环函数(for _ in range())
for i in range(110, 101, -3):
print(i, '*')
# 第一个数值是起始值,第二个数值是结束值,第三个是步长。
# 起始值能取,结束值不能取
print(i, 'bbb')
# b没有进入循环
- 例题
total = 0
for i in range(1, 101):
total += i
print(total)
print(sum(range(1, 101)))
# 计算1到100的和
4.关系判断
"""
符合的赋值运算-----> += -= *= /=
关系运算符 ---> > < >= <= == != ---->产生布尔值(ture or false)
逻辑运算符----> and(与) or(或) not(非)
"""
print(True and True)
print(True and False)
print(False and True)
print(False and False)
# 除了第一个,其他全是假
print('-' * 10)
print(True or True)
print(True or False)
print(False or True)
print(False or False)
# 除了第四个,其他全是真
a = float(input('请输入数据:'))
b = input('请选择单位(厘米/英寸):')
if b == '厘米':
c = 0.393 * a
b1 = '英寸'
if b == '英寸':
c = float(2.54 * a)
b1 = '厘米'
print('结果为:', c, b1)
# 进制双向转化
5.循环函数和关系判断总和应用
"""
输入两个正整数,求最大公约数
"""
a = int(input('输入第一个正整数:'))
b = int(input('输入第二个正整数:'))
i = 0
if a > b:
for i in range(a, 0, -1):
if a % i == 0 and b % i == 0:
print('最大公因数:', i)
break
if a < b:
for i in range(b, 0, -1):
if a % i == 0 and b % i == 0:
print('最大公因数:', i)
break
if a == b:
print('最大公因数:', a)
6.循环函数(while)
n = int(input('输入n:'))
total = 0
while n > 0:
a = n % 10
total = total*10 + a
n = n // 10
print(total)
# 将任意一个数字,倒转
# while后面跟的是条件,如果是Ture,那就是死循环
7.双循环的应用
n = int(input('请输入行数:'))
for h in range(1, n + 1):
for j in range(1, n+1):
print(f'{h*j:<10d}', end=' ')
print()
# 数字矩阵
import time
start = time.time()
for num in range(2, 10000):
is_prime = True
for i in range(2, int(num**0.5)+1):
if num % i == 0:
is_prime = False
break
if is_prime:
print(num, end='\n')
end = time.time()
print(f'执行所用时间:{end-start:.10f}')
# 计算范围内所有质数
import time
start = time.time()
for num in range(2, 10000):
total = 1
for i in range(2, int(num**0.5)+1):
if num % i == 0:
total += i
if i !=num // i:
total += num //i
if num == total:
print(num)
end = time.time()
print(f'运行时间:{end-start:.3f}')
# 找出1-10000之间的完美数(除自身外所有因子的和等于这个数)
# 双循环
# 用时间函数,查看运行时间
8.列表函数
num = [1, 100, 1000]
print(type(num))
print(num)
num.append(10000)
# 在最后添加??
num.insert(1, 10)
# 在一号数字前面添加,??
num.pop()
# 删除元素(默认最后一个)
print(len(num))
# len()函数,计算列表长度
9.列表的索引
nums = [1, 100, 1000]
print(type(nums))
print(nums)
print(nums[0])
# 打印num列表中第三号位数字。索引
10.列表的三种遍历
nums = [1, 100, 1000]
for i in range(len(nums)):
print(nums[i])
# nums[i]=100
# print(nums)
print('-'*10)
# 遍历列表中所有数字,可以读写
for x in nums:
print(x)
print('-'*10)
# 只能读
for i, x in enumerate(nums):
print(i,x)
# 可以用于加序号
11.通过列表高级函数统计应用
import random
fs = [0] * 6
for _ in range(60000):
face = random.randrange(1, 7)
fs[face - 1] += 1
print(fs)
for i in range(len(fs)):
print(f'{i + 1}点出现了{fs[i]}次')
print('-' * 10)
for i, a in enumerate(fs):
print(f'{i + 1}点出现了{fs[i]}次')
# 掷骰子,统计各点数出现的次数