第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Python 基礎(chǔ)算法練習(xí)題

標(biāo)簽:
Python

开始学习python 的第4天,看完了基础语法hengdian-fiber,打算写一些简单的题目来巩固一下语法 

本人看的教程是“廖雪峰老师”的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 sum

year = 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 个数据,首尾是1

    print(L1)

    print(L2)

    i = 3       ## 表示开始从第 3 行开始循环

    while i<n:  ## i = 3

        L = list(range(0,i))        ## 0 1 2 

        L[0],L[i-1] = 1,1

        for 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 的练习题tongshengxd

将字符串的“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+y

def fn2(x,y):

    return x/10+y

def str2folat(s):

    L = s.split('.')    ## 划分成两个

    n1 = reduce(fn1,map(char2num,L[0]))     ## 前半部分的数字

    L[1] = '0'+L[1]         ## 人为加个 0

    n2 = reduce(fn2,map(char2num,L[1][::-1]))

    n = n1+n2

    return n

print(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  l

def select_sort(arr):

    length = len(arr)  # 拿到数组的长度

    for i in range(0, length - 1):

        k=i

        for 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] = t

list = 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] = t

def get_random_list(n):

    l = []

    for i in range(0,n):

        l.append(random.randint(1,10))

    return l

l = get_random_list(10)

print(l)

bubble_sort(l)

print(l)

--------------------- 


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消