Python100道练习题
1、两数之和
num1 = 20
num2 = 22
result = num1 + num2
print(result)
2、一百以内的偶数
list1 = []
for i in range(1,100):
if i % 2 == 0:
list1.append(i)
print(list1)
3、一百以内的奇数
# 方法一
list1 = []
for i in range(1,100):
if i % 2 != 0:
list1.append(i)
print(list1)
# 方法二
list2 = [i for i in range(1,100) if i % 2 != 0]
print(list2)
# 方法三
list3 = [i for i in range(1,100,2)]
4、判断素数
编写程序,判断某一个数是否为素数。所谓素数指的是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数:
a = 37
flag = True
for i in range(2,a): # 注意range 是左闭右开
if a % i == 0:
flag = False
break # 一旦判断成功后,后面就没必要继续了
if flag:
print('a不是素数')
else:
print('a是素数')
5、求阶乘
编写程序,求出某个自然数的阶乘。一个正整数的阶乘是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!
a = 5
# 方法一
if a == 0 or a == 1:
print('阶乘为: 1')
else:
sum = 1
for i in range(2,a+1): # 包括本身
sum *= i
print('阶乘为:',sum)
# 方法二 递归
def fun(x):
if x == 1:
return 1
else:
return x * fun(x - 1)
print(fun(a))
# 方法三 math.factorial()
import math
print(math.factorial(a))
6、求圆的周长
程序编写:输入半径,求出圆的周长
圆的周长:2πr
import math
r = float(input('请输入圆的半径:'))
girth = 2 * r * math.pi
print('周长是',round(girth,2)) # round 保留两位小数
7、求圆的面积
程序编写:输入半径,求出圆的面积
圆的周长:πrr
import math
r = float(input('请输入圆的半径:'))
girth = r * r * math.pi
print('面积是',round(girth,2)) # round 保留两位小数
8、求直角三角形斜边的边长
编写程序:输入两个直角边,求出三角形斜边的长度
勾股定理:a2 + b2 = c2
import math
a = 3
b = 4
cfang = math.pow(a,2) + math.pow(b,2)
# 或者 math.pow(cfang,0.5) or cfang ** 0.5
print('三角形斜边的长度: ',math.sqrt(cfang))
9、比较三个数大小
编写程序:输入三个数,从小到大输出三个数
a = int(input('请输入第一个数:'))
b = int(input('请输入第二个数:'))
c = int(input('请输入第三个数:'))
lst = [a,b,c]
# 方法一:list.sort() ,sort(reverse=False) 默认False 升序
lst.sort()
print(lst)
# 方法二:sorted(lst)
list1 = sorted([a,b,c])
print(list1)
10、找出区间内的素数
编写程序,输入整数a、b表示一个闭区间,找出该区间内的所有素数并打印。
# 判断素数函数
def prime(x):
flag = True
for i in range(2, x):
if x % i == 0:
flag = False
break
return flag
# 闭区间
a = 10 # 左端点
b = 20 # 右端点
num_list = []
for i in range(a,b+1):
if prime(i):
num_list.append(i)
print(num_list)
11、组合数字
有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
# 方法一
str1 = '1234'
for i in str1:
for j in str1:
for k in str1:
if i == j or i == k or j == k:
continue
print(i+j+k)
# 方法二
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if not(i == j or i == k or j == k):
print(f'{
i}{
</