我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【20】Python100例基础练习(4

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【20】Python100例基础练习(4

例16:
题目:输出指定格式的日期
方法1:

import datetime

if __name__ == '__main__':

    # 输出今日日期,格式为 dd/mm/yyyy。更多选项可以查看 strftime() 方法
    print(datetime.date.today().strftime('%d/%m/%Y'))
    # 创建日期对象
    miyazakiBirthDate = datetime.date(1941, 1, 5)
    print(miyazakiBirthDate.strftime('%Y/%d/%m'))
    # 日期算术运算
    miyazakiBirthNextDay = miyazakiBirthDate + datetime.timedelta(days=1)
    print(miyazakiBirthNextDay.strftime('%d/%m/%Y'))
    # 日期替换
    miyazakiFirstBirthday = miyazakiBirthDate.replace(year=miyazakiBirthDate.year + 1)
    print(miyazakiFirstBirthday.strftime('%d/%m/%Y'))

运行结果:
22/12/2017
1941/05/01
06/01/1941
05/01/1942

方法2:

import time

print (time.time())  #Python time time() 返回当前时间的时间戳(1970纪元后经过的浮点秒数)。
print (time.localtime())  #作用是格式化时间戳为本地的时间。 如果sec参数未输入,则以当前时间为转换标准。 DST (Daylight Savings Time) flag (-1, 0 or 1) 是否是夏令时。
print (time.asctime())  #函数接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
print (time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()) )#'2017-06-27 13:00:57'
运行结果:
1513952857.059225
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=22, tm_hour=22, tm_min=27, tm_sec=37, tm_wday=4, tm_yday=356, tm_isdst=0)
Fri Dec 22 22:27:37 2017
2017-12-22 22:27:37

例17
题目:输入一行字符,分别统计其中的字母,数字,空格和其他字符的个数。
方法1:

input=input("输入任意字符: ")
letters=[]
spaces=[]
number=[]
others=[]
for i in iter(input):
    if i.isalpha() == True: ###isalpha 检测字符串是否只由字母组成。
        letters.append(i)
    elif i.isspace()==True:  ###检测字符串是否只由空白字符组成
        spaces.append(i)
    elif i.isdigit()==True: ###检查字符串是否有整数组成
        number.append(i)
    else:
        others.append(i)
print("""
字母{},个数:{}
空格{},个数:{}
数字{},个数:{}
其它{},个数:{}
"""
.format(letters,len(letters),spaces,len(spaces),number,len(number),others,len(others)))

运行结果:
输入任意字符: 999@@@qqq iii)))

字母['q', 'q', 'q', 'i', 'i', 'i'],个数:6
空格[' ', ' ', ' '],个数:3
数字['9', '9', '9'],个数:3
其它['@', '@', '@', ')', ')', ')'],个数:6

方法2:用正则表达

import re ###正则表达式功能
def statistics():
    Input=input("输入任意字符:")
    letters=0
    numbers=0
    spaces=0
    others=0
    for i in range(len(Input)): 
        if re.match('\d',Input[i]): #re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
            letters +=1
        elif re.match("[a-zA-Z]",Input[i]):
            numbers +=1
        elif re.match("\s",Input[i]):
            spaces +=1
        else:
            others +=1
    print("""
    字母个数:{}
    数字个数:{}
    空格个数:{}
    其它个数:{}
    """.format(letters,numbers,spaces,others))
statistics()

运行结果:
输入任意字符:qazwsx123#$%^&*()

字母个数:6
数字个数:3
空格个数:2
其它个数:8

例18
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
程序分析:关键计算出每一项的值
方法1:

T=0
S=[]
n=int(input("n= "))
m=int(input("m= "))
for i in range(n):
    T = T+m   ##5,55,555,5555,55555
    m = m * 10 ##50,500,5000,50000
    S.append(T)
    print(T)
print(S,sum(S))

运行结果:
n= 5
m= 5
5
55
555
5555
55555
[5, 55, 555, 5555, 55555] 61725

方法2:

def suman(a, n):
    if n<1:    return []
    s = [a]  ##s=4
    m = 10 
    for i in range(0, n-1):
        s.append(s[i]*m + a)  ###当i=0,s[i]=4 .4*10+4 [4,44],当i=1时,s[i]=44 ,44*10+4 [4,44,444]
    return sum(s), s

print(suman(4,5))

运行结果:
(49380, [4, 44, 444, 4444, 44444])


例19
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
分析:可以参考例14
方法:

for i in range(1,1001):
    summ =0
    for j in range(1,i):
        if i%j==0:
            summ +=j
    if summ ==i :
        print(i)

运行结果:
6
28
496


例20:
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
程序分析:下落后反弹为x,下落反弹长度累加等于3x
方法1:

def summ(x,y,n):
    L=[]
    for i in range(1,n+1):  #从1开始到11,下落十次
        x *=y ###下落反弹后,弹起来的高度是下落高度的一半
        total=x*3 ###100下落反弹高度是50,x第一次记录五十加上下落高度等于150。所以这里total=x值*3=150
        L.append(total)
    print(x)
    print(sum(L)-x)###sum计算列表值。减去最后一次反弹高度。即为第十次落地时总里程。
    print(L)
summ(100,0.5,10)

运行结果:
0.09765625
299.609375
[150.0, 75.0, 37.5, 18.75, 9.375, 4.6875, 2.34375, 1.171875, 0.5859375, 0.29296875]

方法2:第一次高度先记录,反弹在降落的里程等于2x

x=int(input("输入高度:"))
y=int(input("输入反弹次数: "))
total=[]
l=[]
for i in range(1,y+1):  #次反弹数
    if i ==1:  #第一次下落,反弹高度 x*=0.5 记录到l列表
        total.append(x)
    else:
        total.append(x*2) ##反弹在次下落高度是相等的,这里乘以2
    x *=0.5
    l.append(x)
print(total)
print(l)
print("里程累计\033[31;1m{}\033[0mM".format(sum(total)))
print("第\033[31;1m%s\033[0m反弹高度%s"%(y,l[-1]))

运行结果:
输入高度:100
输入反弹次数: 10
[100, 100.0, 50.0, 25.0, 12.5, 6.25, 3.125, 1.5625, 0.78125, 0.390625]
[50.0, 25.0, 12.5, 6.25, 3.125, 1.5625, 0.78125, 0.390625, 0.1953125, 0.09765625]
里程累计299.609375M
第10反弹高度0.09765625

http://runoob.com

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【20】Python100例基础练习(4

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

【20】Python100例基础练习(4

例16:题目:输出指定格式的日期方法1:import datetimeif __name__ == '__main__': # 输出今日日期,格式为 dd/mm/yyyy。更多选项可以查看 strftime() 方法 print
2023-01-31

【15】Python100例基础练习(2

例6题目:斐波那契数列斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28
2023-01-31

【17】Python100例基础练习(3

例11:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?程序分析:兔子的规律1,1,2,3,5,8,13,21... ...方法1:使用defde
2023-01-31

【14】Python100例基础练习(1

例1:有四个数字:1、2、3、4能组成多少个互不相同且无重复的数字的三位数?各是多少?审题:1.去重2.计算总数程序代码:方法1:dict=[]for in range(1,5): #i变量赋值 1 2 3 4 for j in
2023-01-31

Python--基础练习

1. 在Linux电脑上安装python,ipython,pycharm专业版本软件;   2. 在Windows电脑上安装python3版本,并配置环境变量,确保Dos环境下运行脚本;   3. Linux下有多少种运行python的不同
2023-01-31

【Python基础】练习题

# 练习题'''1、简述编译型语言和解释性语言的区别,并且列出你知道哪些语言为编译型那些为解释型 编译型语言:每次编写完成后都要将其编译成二进制(0和1)文件 优点:运行速度快
2023-01-31

python基础练习_1.1

练习_1.1练习题目:    1 打印九九乘法表    2 打印下方菱形    3 打印100以内的斐波那契数列    4 求斐波那契数列第101项    5 求10万内的所有质数       *         ***       ***
2023-01-31

python基础学习20----线程

什么是线程  线程,有时被称为轻量进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基
2023-01-30

python基础1习题练习

python基础1习题练习:#encoding:utf-8#1.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!name=input('name>>: ').strip()passwor
2023-01-31

python学习-4 python基础-

条件语句的原理:  2.举个例子:比大小  #!/usr/bin/env python# -*- coding:utf8 -*-a=input("请输入a:")b=input("请输入b:")if a > b: print("a >
2023-01-31

python3--基础总练习题

1、常用字符串格式化有哪些?并说明他们的区别格式化操作符(%)fotmat2、请手写一个单例模式(面试题)无论实例化多少次,他的对象始终是一个内存地址单例模式,示例:classtest:__instance=Nonedef__init__(
2023-01-30

python基础学习4----元组

元组又叫只读列表,不可以修改其内容1.创建元组tuple1=(1,3,2,4,5)tuple2=()#空元组tuple3=('a',)#元组中只有一个元素时要在元素后面加上逗号,否则会被当成其他数据类型处理tuple4=(1,'a',[1,
2023-01-30

python3--基础综合练习题

最好自己先尝试做一做练习1:猜年龄游戏要求:允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出#!/usr/bin/envpython#coding:utf-8__author__=www.py3study.
2023-01-30

Python基础练习100题 ( 91

昨天和大家分享了81-90题,今天继续来刷最后的91-100题Question 91:Please write a program which accepts a string from console and print it in re
2023-01-31

Python基础练习100题 ( 1~

大家好,好久不见,我最近在Github上发现了一个好东西,是关于夯实Python基础的100道题,原作者是在Python2的时候创建的,闲来无事,非常适合像我一样的小白来练习对于每一道题,解法都不唯一,我在这里仅仅是抛砖引玉,希望可以集合大
2023-01-31

Python基础练习100题 ( 31

昨天和大家分享了21-30题,今天继续来刷31~40题Question 31:Define a function which can print a dictionary where the keys are numbers between
2023-01-31

Python基础练习100题 ( 41

大家好,我又回来了,昨天和大家分享了31-40题,今天继续来看41~50题Question 41:Write a program which can map() to make a list whose elements are squar
2023-01-31

Python基础练习100题 ( 21

昨天和大家分享了前10道题,今天继续来刷21~30Question 21:A robot moves in a plane starting from the original point (0,0). The robot can move
2023-01-31

Python基础练习100题 ( 81

昨天和大家分享了71-80题,今天继续来刷81~90题Question 81:By using list comprehension, please write a program to print the list after remov
2023-01-31

Python基础练习100题 ( 61

昨天和大家分享了51-60题,今天继续来刷61~70题Question 61:The Fibonacci Sequence is computed based on the following formula:f(n)=0 if n=0f(
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录