万法裨益,实战为王2

实例 :深浅拷贝

题目 将一个列表的数据复制到另一个列表中。

程序分析 使用列表[:],拿不准可以调用copy模块。需要记住的点:
1.**直接赋值:**两个变量指向同一个对象;
2.**浅拷贝:**只拷贝第一层内容;
3.**深拷贝:**对象中的所有内容都拷贝。

import copy
a = [1,2,3,4,['a','b']]

b = a					# 赋值
c = a[:]				# 浅拷贝
d = copy.copy(a)		# 浅拷贝
e = copy.deepcopy(a)	# 深拷贝

a.append(5)
a[4].append('c')

print('a=',a)
print('b=',b)
print('c=',c)
print('d=',d)
print('e=',e)

测试结果:
万法裨益,实战为王2_第1张图片

实例:九九乘法表

题目 输出 9*9 乘法口诀表。

程序分析 分行与列考虑,共9行9列,i控制行,j控制列。

for i in range(1,10):
    for j in range(1,i+1):
        print('%d*%d=%2d '%(i,j,i*j),end='')
    print()

测试结果:
万法裨益,实战为王2_第2张图片

时间日期格式化

%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
a.可以使用 time 模块的 strftime 方法来格式化日期

import time

# 格式化成2019-11-23 22:53:00形式
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

# 格式化成Sat Nov 23 22:53:00 2019形式
print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))

# 将格式字符串转换为时间戳,每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间(秒数)来表示。
a = "Sat Nov 23 22:53:00 2019"
print(time.mktime(time.strptime(a, "%a %b %d %H:%M:%S %Y")))

测试结果:
万法裨益,实战为王2_第3张图片
**b.使用 datetime 模块输出指定格式的日期 **

import datetime
print(datetime.date.today())
print(datetime.date(2333,2,3))
print(datetime.date.today().strftime('%d/%m/%Y'))
day=datetime.date(1111,2,3)
day=day.replace(year=day.year+22)
print(day)

测试结果:
万法裨益,实战为王2_第4张图片
c.顺便提一下怎么获取某月日历 ,calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历:

import calendar

cal = calendar.month(2019, 11)
print("以下输出2019年11月份的日历:")
print(cal)

测试结果:
万法裨益,实战为王2_第5张图片

实例:养兔子

题目 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

程序分析 我认为原文的解法有点扯,没有考虑3个月成熟的问题,人家还是婴儿怎么生孩子?考虑到三个月成熟,可以构建四个数据,其中:一月兔每个月长大成为二月兔,二月兔变三月兔,三月兔变成年兔,成年兔(包括新成熟的三月兔)生等量的一月兔。

month=int(input('繁殖几个月?: '))
month_1=1
month_2=0
month_3=0
month_elder=0
for i in range(month):
    month_1,month_2,month_3,month_elder=month_elder+month_3,month_1,month_2,month_elder+month_3
    print('第%d个月共'%(i+1),month_1+month_2+month_3+month_elder,'对兔子')
    print('其中1月兔:',month_1)
    print('其中2月兔:',month_2)
    print('其中3月兔:',month_3)
    print('其中成年兔:',month_elder)

测试结果:
万法裨益,实战为王2_第6张图片

实例:100到200的素数

题目 判断101-200之间有多少个素数,并输出所有素数。

程序分析 判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

import math
for i in range(100,200):
    for j in range(2,round(math.sqrt(i))+1):
        if i%j==0:
            break
    else:
        print(i,end='   ')

测试结果:
在这里插入图片描述

实例:所有水仙花数

题目 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

程序分析 利用for循环控制100-999个数,每个数分解出个位,十位,百位。

for i in range(100,1000):
    s=str(i)
    one=int(s[-1])
    ten=int(s[-2])
    hun=int(s[-3])
    if i == one**3+ten**3+hun**3:
        print(i)

测试结果:
万法裨益,实战为王2_第7张图片

实例:分解质因数

题目 将一个整数分解质因数。例如:输入90,打印出90=233*5。

程序分析 根本不需要判断是否是质数,从2开始向数本身遍历,能整除的肯定是最小的质数。

while 1:
    print()
    target=int(input('输入一个整数:'))
    print(target,'= ',end='')

    if target<0:
        target=abs(target)
        print('-1*',end='')
    flag=0
    if target<=1:
        print(target)
        flag=1

    while True:
        if flag:
            break
        for i in range(2,int(target+1)):
            if target%i==0:
                print("%d"%i,end='')
                if target==i:
                    flag=1
                    break
                print('*',end='')
                target/=i
                break

测试结果:
万法裨益,实战为王2_第8张图片

实例:字符串构成

题目 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

程序分析 很简单,知道isspace()、isdight()和isalpha()等方法的使用,利用 while 或 for 语句,为输入的各种字符串计数即可。

string=input("输入字符串:")
alp=0
num=0
spa=0
oth=0
for i in range(len(string)):
    if string[i].isspace():
        spa+=1
    elif string[i].isdigit():
        num+=1
    elif string[i].isalpha():
        alp+=1
    else:
        oth+=1
print('space: ',spa)
print('digit: ',num)
print('alpha: ',alp)
print('other: ',oth)

测试结果:
万法裨益,实战为王2_第9张图片

结语

对于你喜欢的事想去做的事,你必须付出百分之一千的努力,你知道这一路可能会有很多困难,会有坚持不下去想要放弃的时候,也有时候,你不一定会得到你想要的结果,但你一定要相信,就算再贫瘠的土地你日日灌溉,总有那么一天会长出花草来的,所以你一定要坚持。
最后,送给所有在孤独前行的人一句话:愿你以渺小启程,以伟大结尾。

你可能感兴趣的:(python)