Python基础练习
1、找两个数的最大公约数和最小公倍数
x = int(input("请输入x的值"))
y = int(input("请输入y的值"))
if x > y:
x, y = y, x
for factor in range(x, 0, -1):
if x % factor == 0 and y % factor == 0:
print("{x}和{y}的的最大公约数为{factor}".format(x=x, y=y, factor=factor))
print("{x}和{y}的最小公倍数为{value}".format(x=x, y=y, value=x * y // factor))
break
2、水仙花数
说明:一个三位数,它的个位数、十位数、百位数的三次方相加等于它本身。例如153 = 1^ 3+ 5^3 + 3 ^3
所以关键在于将数的个位、十位、百位进行分离,并判断相加的值是否相等即可。
for num in range(100, 1000):
low = num % 10
mid = num // 10 % 10
high = num // 100
if low ** 3 + mid ** 3 + high ** 3 == num:
print("{0}是水仙花数".format(num))
3、通过取整和取余的方式反转数据
num = int(input())
rev_num = 0
while num > 0:
rev_num = rev_num * 10 + num % 10
num //= 10
print(rev_num)
4、百钱百鸡
for x in range(1, 21):
for y in range(1, 34):
z = 100 - x - y
if 5 * x + 3 * y + z / 3 == 100:
print("可以买%d只公鸡,%d只母鸡和%d只小鸡" % (x, y, z))
5、斐波那契数列的实现
## 方法一:用递归调用的方式
def Feibonaci_num(n):
result_list = []
for i in range(1, n + 1):
result_list.append(Feibonaci(i))
return result_list
def Feibonaci(n):
if n < 0:
return 0
elif n == 1:
return 1
else:
return Feibonaci(n - 1) + Feibonaci(n - 2)
## 通过n来控制循环的次数,每次循环产生的数通过b来接收,并写到res_li中
def Feibonaci_new(n):
a, b = 0, 1
res_li = []
while n > 0:
res_li.append(b)
a, b = b, a + b
n -= 1
return res_li
print(Feibonaci_num(10))
print(Feibonaci_new(10))
6、完美数
for i in range(2, 10000):
res = []
for j in range(1, i):
if i % j == 0:
res.append(j)
if sum(res) == i:
print("{0}是完美数!".format(i))
7、素数
res = []
for i in range(2, 100):
for j in range(2, i+1):
if i % j == 0 and i != j:
break
else:
res.append(i)
8、判断是否是回文数
def is_palindrome(n):
'''判断是否是回文数'''
temp = n
total = 0
while temp > 0:
total = total * 10 + temp % 10
temp //= 10
if total == n:
print("%d是回文数" % n)
9、产生4位数的字母和数字组合的验证码
import random
def generate_code(code_len=4):
all_char = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
last_len = len(all_char) - 1
check_char = ""
for _ in range(code_len):
i = random.randint(0, last_len)
check_char += all_char[i]
return check_char
print(generate_code(4))
10、对文件夹下面的文件以及文件夹取出后缀名
import os
filepath = "/Users/xiaocui/Desktop/Mywork/DataAnalysis/"
file_li = os.listdir(filepath)
fileName_li = []
for fileName in file_li:
pos = fileName.find(".") # 判断属于文件还是文件夹,文件夹没有后缀名
if pos != -1:
fileName_pre, fileName_suf= fileName.split(".")
fileName_li.append((fileName_pre, fileName_suf))
print(fileName_li)