小白如何成为python数据分析师
第三天----代码演练
要掌握新的知识,除了多看,更重要的还是得多练,正所谓熟能生巧,当你将某一个知识点应用的得心应手,相应的你对这个知识点已经有了自己透彻的理解,日积月累下可想而知是多么了不起的!
1.分支结构和循环结构----的代码练习!
一.分支结构
在Python中,要构造分支结构可以使用if、elif和else关键字。所谓关键字就是有特殊含义的单词,像if和else就是专门用于构造分支结构的关键字,很显然你不能够使用它作为变量名。
多分支结构:代码越扁平越好,扁平可读性好。可以嵌套使用,但是不能嵌套的太深,影响可读性。不可读就无法维护。
代码块:保持相同缩进的就是一个代码块;
1.英制单位转换为公制单位:
x = float(input('请输入长度:'))
print(f'{x} = {x * 2.54}厘米')
2.英制单位英寸和公制单位厘米互换:
# 我们要确定输入单位的是英寸还是厘米,才好进行下一步的转换计算。
# 我们不确定输入的格式是否正确及计算次数。可以使用while循环实现。
while True:
value = float(input('请输入长度'))
# float:输入为浮点数。
unit = input('请输入单位: ')
if unit == 'in' or unit == '英寸':
# 判断输入单位,
print('%f英寸 = %f厘米' % (value, value * 2.54))
elif unit == 'cm' or unit == '厘米':
# 判断输入单位,
print('%f厘米 = %f英寸' % (value, value / 2.54))
else:
print('请输入有效的单位')
# 想让循环结束,可以使用“break”关键字 ,或者设定循环条件,不满足时退出。
3.分段函数求值,—> 如何构造多个分支
分段函数求值,
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(f'f(x)={y}')
# 我们也可以一直使用if来构造分支:只是会比较不方便。
x = float(input('x='))
if x > 1:
y = 3 * x - 5
if x >= -1:
y = x + 2
if x <= -1:
y = 5 * x + 3
print(f'f(x)={y}')
4.个人所得税计算器

total = float(input('本月收入: '))
insurance = float(input('五险一金扣除: '))
E = total - insurance
I = E - 3500
if 0 < I <= 1500:
R = 0.03
D = 0
elif I <= 4500:
R = 0.1
D = 105
elif I <= 9000:
R = 0.2
D = 555
elif I <= 35000:
R = 0.25
D = 1005
elif I <= 55000:
R = 0.3
D = 2755
elif I <= 80000:
R = 0.35
D = 5505
else:
R = 0.45
D = 13505
if I > 0:
T = I * R - D
else:
T = 0
print(f'应纳税款: {T:.2f}元')
print(f'税后收入: {E - T:.2f}元')
二.循环结构
循环结构就是程序中控制某条或某些指令重复执行的结构。在Python中构造循环结构有两种做法,一种是for-in循环,一种是while循环。
for-in循环
# 输出0~100的整数。
for i in range(1, 101): # 在0~100取数。
print(i)
注意:在编程语言中,括号”()“都是左闭右开:左边闭区间,右边开区间,所以想取完数就得n+1。
1.1~100求和:
t = 0
for i in range(1, 101):
t += i
print(f'和为:{t}')
# 我们也可以直接调用函数模块计算。
total = sum(range(1, 101))
print(total)
2. 1~100求3或者5的倍数和:
total = 0
for i in range(1, 101):
if i % 3 == 0 or i % 5 == 0:
total += i
print(total)
3.实现1-100之间的偶数求和,奇数求和
# 偶数和
total = 0
for i in range(2, 101, 2):
# 直接利用步长取出偶数。
total += i
print(total)
#奇数和
total = 0
for i in range(1, 101):
if i % 2 != 0:
total += i
else:
pass
#跳过
print(total)
4.输入你,求n!------->n!=n*(n-1)(n-2)…
n=int(input('N='))
total = 1
if n>0:
for i in range(1,n+1):
total* = i
print(total)
5.输入两个数,找到它们的公约数
x=int(input('x='))
y=int(input('y='))
for i in range(x,0,-1):
if x%i==0 and y%i==0:
print(i)
# break结束,找到就结束,
break
# 方法二---奥基里德算法求公约数.
x = int(input('x='))
y = int(input('y='))
while y % x != 0:
# x = y % x
# y = x
x, y = y % x, x
print(x)
6.输入N,输出1-N以及它们对应的平方立方、的NN次方
n = int(input('请输入n='))
print('N'.ljust(10), end='')
# 输出元素距离10,不换行
print('N^2'.ljust(10), end='')
print('N^3'.ljust(10), end='')
print('N^N'.ljust(10))
for i in range(1, n+1):
print(f'{i:<10d}{i ** 2:<10d}{i ** 3:<10d}{i ** i:<10d}')
课后练习
练习了这么多,相信你对分支结构,循环结构有了自己的认知,动手自己试试下面的例题,检验自己学到了多少。
1. 找出100~999之间的水仙花数(各位数字的立方和刚好等于这个数本身)
153 = 1^3 + 5^3 + 3^3
2. 找出1~10000之间的完美数(除自身外所有因子的和等于这个数)
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
3. 输入m和n(m >= n),计算C(m, n)的值 ---> m! / (n! * (m - n)!)
4. 输入一个正整数,判断它是不是质数(只能被1和自身整除的数)
5. 输入三角形三条边的长度,如果能构成三角形就计算周长和面积,
如果不能构成三角形,提示用户重新输入,直到正确!
# 1.寻找水仙花数:
for i in range(100,1000):
low = i % 10
# 取个位
mid = i // 10 % 10
# 取十位
high = i // 100
# 取百位
if i== low**3 +mid**3+high**3:
print(i)
print('水仙花数有:')
# 2.找出1~10000的完美数,
for i in range(1,10001):
num = 0
for k in range(1, i):
if i % k == 0:
num += k
if num == i:
print(i)
# 3.输入n,m,计算c=m!/(n1*(m-n)!)
m = int(input('m='))
n = int(input('n='))
a = 1
b = 1
d=1
c = m - n
if m >= n:
for i in range(1, m + 1):
a *= i
#a=m!
for j in range(1, n + 1):
b *= j
#b=n!
for f in range(1, c + 1):
d*= f #d=c!
print(a / (b * d))
# 4.输入一个数判断是否是质数(素数)
n = int(input('n='))
if n == 1 :
print(f'{n}不是质数')
if n == 2:
print(f'{n}是质数')
for i in range(2, n):
# 找到2到n的因子
if n % i == 0:
print(f'{n}不是质数')
break
else:
print(f'{n}是质数')
break
# 方法2,改进版,使用布尔值。
num = int(input("请输入一个正整数:"))
is_prime = True #假设是质数
for i in range(2, num): #进入循环
# for i in range(2,int(num**0.5)+1):减少循环次数,
if num % i == 0:
is_prime = False
break
if is_prime and num > 1:
print(f'{num}是质数')
else:
print(f'{num}不是质数')
# 5.输入三条边长,如果能构成三角形就计算周长和面积。不能提醒重新输入。直到输入正确。
# 当我们不知道循环次数时,使用while 循环。
while True:
a = float(input('a='))
b = float(input('b='))
c = float(input('c='))
if a + b > c and a + c > b and b + c > a:
peri = a + b + c
print(f'周长: {peri}')
half = peri / 2
area = (half * (half - a) * (half - b) * (half - c)) ** 0.5 # 海伦公式
print(f'面积: {area}')
break
else:
print('不能构成三角形')
print('请重新输入')
版权声明:本文为qq_45691413原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。