Python 基础算法练习题

编程入门 行业动态 更新时间:2024-10-10 13:21:17

Python 基础算法<a href=https://www.elefans.com/category/jswz/34/1768594.html style=练习题"/>

Python 基础算法练习题

开始学习python 的第4天,看完了基础语法,打算写一些简单的题目来巩固一下语法
本人看的教程是“廖雪峰老师”的python教程,非常实用,非常适合入门
链接在此:廖雪峰python教程

一. 基础题目

1. 输入“年月日”,输出是一年中的第几天

# -*- coding:utf-8 -*-## 输入年月日,判断是一年的多少天def getN(year,month,day):sum = 0         ## 到最后在判断是闰年还是平年for i in range(0,month):sum += m[i]     sum += day if (year%400==0) or (year%4==0 and year%10!=0 ):    ## 表示是闰年sum += 1
    return sumyear = input("year : ")     ## 输出数据 
month = input("month : ")
day = input("day : ")               
m = [0,31,28,31,30,31,30,31,31,30,31,30]    ## 只包括前 11 个月year = int(year)
month = int(month)
day = int(day)
print( getN(year,month,day))

2. 打印杨辉三角

def trianges(n):    ## 表示有 n 行数据L1 = [1]L2 = [1,1]  ## 第n 行有n 个数据,首尾是1print(L1)print(L2)i = 3       ## 表示开始从第 3 行开始循环while i<n:  ## i = 3L = list(range(0,i))        ## 0 1 2 L[0],L[i-1] = 1,1for j in range(1,i-1):L[j] = L2[j] + L2[j-1]      ## 上下两行的关系i = i+1             ## 下一行L2 = L              print(L)trianges(10)        ## 测试数据

结果:

[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
[1, 6, 15, 20, 15, 6, 1]
[1, 7, 21, 35, 35, 21, 7, 1]
[1, 8, 28, 56, 70, 56, 28, 8, 1]

3. 关于 reduce 和 map 的练习题

将字符串的“23.45”转换成浮点型的23.45

DIGITS = {'1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, '0': 0}def char2num(s):return DIGITS[s]    ## 返回数字
def fn1(x,y):return x*10+ydef fn2(x,y):return x/10+ydef str2folat(s):L = s.split('.')    ## 划分成两个n1 = reduce(fn1,map(char2num,L[0]))     ## 前半部分的数字L[1] = '0'+L[1]         ## 人为加个 0n2 = reduce(fn2,map(char2num,L[1][::-1]))n = n1+n2return nprint(str2folat("23.45"))   

二. 排序算法

1. 选择排序:

import  random
def get_random_list(n):l = []for i in range(0,n):l.append( random.randint(1,11))return  ldef select_sort(arr):length = len(arr)  # 拿到数组的长度for i in range(0, length - 1):k=ifor j in range(i + 1, length):if arr[k] > arr[j]: # 从小到大排序k = j# swap(arr[k],arr[i])   # 在函数中实现参数的交换不行,说明python的函数传递是“值传递”t = arr[k]arr[k] = arr[i]arr[i] = tlist = get_random_list(10)  # 自动生成 list
print(list)
select_sort(list)
print(list)

2. 冒泡排序

# 冒泡排序
def bubble_sort(arr):length = len(arr)for i in range(0,length-1):for j in range(0,length-i-1):if arr[j]>arr[j+1]:t = arr[j]arr[j] = arr[j+1]arr[j+1] = tdef get_random_list(n):l = []for i in range(0,n):l.append(random.randint(1,10))return ll = get_random_list(10)
print(l)
bubble_sort(l)
print(l)

更多推荐

Python 基础算法练习题

本文发布于:2024-02-06 18:04:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1750971.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:练习题   算法   基础   Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!