python基础算法_python算法:最基础的算法练习

总结了一些最最基本的python算法,供新手一起练习

练习一:求1+2+3...100的值

#第一种方法

a = 0

for i in range(1,101):

a+=i

print(a)

#第二种方法

a = 0

for i in range(1,101):

a+=i

print(a)

#第三种方法

from functools import reduce

def f(x,y):

return x+y

print(reduce(f,range(1,101)))

# 第四种方法

from functools import reduce

print(reduce(lambda x,y:x+y,range(1,101)))

练习二:打印一个数的阶乘

# 方法一

def fac(n):

result = 1

for i in range(1,n+1):

result*=i

if i

print(i,"X",'',end='')

else:

print(i,"=",'',end='')

return result

print(fac(4))

# 方法二

from functools import reduce

print(reduce(lambda x,y:x*y,range(1,5)))

练习三:10-50中个位数带有5的所有数字

# 方法一

for i in range(1,5):

for j in range(1,6):

print(i*10+j,'',end='')

# 方法二

for i in range(10,50):

if str(i)[1] in ['1','2','3','4','5']:#注意str[]的用法

print(i,'',end='')

练习四:求两个数的最大公约数

def gcd(x,y):

# 情况一:较大的数字能整除较小的数字

if x>y:

biger = x

smaller = y

else:

biger =y

smaller = x

if biger%smaller ==0:

gcd =smaller

# 情况二:不能进行整除

else:

for i in range(1,smaller):

if x%i ==0 and y%i ==0:

gcd = i

return gcd

print(gcd(16,12))

# range 范围应该改为(smaller+1)/2

练习5:计算100-300内的质数,并统计个数

a = []

# 用count来计数

count =0

for i in range(100,301):

# 判定不是质数的进行剔除

judge = 1

for j in range(2,i):

if i%j ==0:

judge+=1

if judge==1:

count+=1

a.append(i)

print(a)

print(f"一共有{count}个质数")

练习六:利用冒泡进行排序

#两两对比,像最大的泡冒上来

def bubbleSort(nums):

# 需要冒泡的次数

for i in range(len(nums)-1):

# 每一次排序

for j in range(i,len(nums)-1):

if nums[j]>nums[j+1]:

nums[j+1],nums[j] = nums[j],nums[j+1]

return nums

nums = [1,5,2,6,12]

print(bubbleSort(nums))

练习七:利用选择进行排序

# 选择排序,核心思想:固定位置,选择元素

#第一次循环,在list中选择最小的元素放入index0,以此类推

def selectSort(list):

for i in range(len(list) - 1):

# 第1个,第2个,第3个位置(i)选出最小值min

min = i

# 遍历完成之后,min就指向了最小元素的下标

for j in range(i,len(list)):

if list[j]

# min指向的是最小元素j的下标

min = j

# 把将最小的元素值 和 坐标为i的元素值进行交换

# 最小元素值的坐标赋给temp

# temp表示最小元素的值

temp = list[min]

# 把i位值(第一次循环就是位值1的值给值最小的值所在的位置)即坐标互换

list[min] = list [i]

list [i] = temp

# #或者直接互相赋值(下面这样写)

# list[min],list[i] = list[i],list[min]

return list

a = [2,3,1,22,12,15,222,1,0]

print(selectSort(a))

个人选择和冒泡排序很容易混淆,多多区分...

练习八:利用插入进行排序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值