题目 1470:【蓝桥杯】【入门题】【基础练习VIP】时间转换

题目 1470:字符逆序

蓝桥杯刷题群已成立,微信后台回复【蓝桥杯】,即可进入。
如果加入了之前的社群不需要重复加入。

时间限制: 1Sec 内存限制: 128MB

1. 题目描述

给定一个以秒为单位的时间t,要求用  “< H> :< M> :< S> ”的格式来表示这个时间。< H> 表示小时,< M> 表示分钟,  而< S> 表示秒,它们都是整数且没有前导的“0”。例如,若t=0,则应输出是“0:0:0”;若t=3661,则输出“1:1:1”。

2. 输入

输入只有一行,是一个整数t(0< =t< =86399)。

3. 输出

输出只有一行,是以“<H>:<M>:<S> ”的格式所表示的时间,不包括引号。

4. 样例输入

5436 

5. 样例输出

1:30:36


6. 解决方案

思路:1分钟等于60秒,1小时等于3600秒。

「Python语言」

while True:
    try:
        t = int(input())
        h = t // 3600
        a = t % 3600
        m = a // 60
        s = a % 60
        print('{0}:{1}:{2}'.format(h, m, s))
    except:
        break


知识点

1 字符串格式化

「1.1 利用格式化操作符」

"%"是Python风格的字符串格式化操作符,非常类似C语言里的printf()函数的字符串格式化(C语言中也是使用%)。

格式化操作符

【例子】

print('%c' % 97)  # a
print('%c %c %c' % (97, 98, 99))  # a b c
print('%d + %d = %d' % (4, 5, 9))  # 4 + 5 = 9
print("我叫 %s 今年 %d 岁!" % ('小明', 10))  
# 我叫 小明 今年 10 岁!
print('%o' % 10)  # 12
print('%x' % 10)  # a
print('%X' % 10)  # A
print('%f' % 27.658)  # 27.658000
print('%e' % 27.658)  # 2.765800e+01
print('%E' % 27.658)  # 2.765800E+01
print('%g' % 27.658)  # 27.658

【例子】比较%s,str()%r,repr()之间的差异。

  • str()得到的字符串是面向用户的,具有较好的可读性。
  • repr()得到的字符串是面向机器的。

text = "I am %d years old." % 22
print("I said: %s." % text)  
# I said: I am 22 years old..
print("I said: %r." % text)  
# I said: 'I am 22 years old.'

text = "Hello\tWorld\n"
print("%s" % text)
# Hello World
#
print("%r" % text)  # 'Hello\tWorld\n'

「1.2 利用格式化操作符辅助指令」

通过"%"可以进行字符串格式化,但是"%"经常会结合下面的辅助指令一起使用。

辅助指令

【例子】

print('%5.1f' % 27.658)  # ' 27.7'
print('%.2e' % 27.658)  # 2.77e+01
print('%10d' % 10)  # '        10'
print('%-10d' % 10)  # '10        '
print('%+d' % 10)  # +10
print('%#o' % 10)  # 0o12
print('%#x' % 108)  # 0x6c
print('%010d' % 5)  # 0000000005

【例子】整型用十六进制(hexadecimal)和八进制表示(octal)。

num = 100

print("%d to hex is %x" % (num, num))
# 100 to hex is 64
print("%d to hex is %X" % (num, num))
# 100 to hex is 64
print("%d to hex is %#x" % (num, num))
# 100 to hex is 0x64
print("%d to hex is %#X" % (num, num))
# 100 to hex is 0X64

print("%d to oct is %o" % (num, num))
# 100 to oct is 144
print("%d to oct is %#o" % (num, num))
# 100 to oct is 0o144

【例子】指定输出的宽度和对齐。

students = [
    {"name": "Tom", "age": 27},
    {"name": "Will", "age": 28},
    {"name": "June", "age": 27}
]

print("name: %10s, age: %10d" % (students[0]["name"], students[0]["age"]))
print("name: %-10s, age: %-10d" % (students[1]["name"], students[1]["age"]))
print("name: %*s, age: %0*d" % (10, students[2]["name"], 10, students[2]["age"]))
# name:        Tom, age:         27
# name: Will      , age: 28
# name:       June, age: 0000000027

【例子】格式化输出字典dict

Python的格式化操作符,可以直接使用"%(key)s"(这里的s根据具体类型改变)的方式表示dict中对应的value。

students = [
    {"name": "Tom", "age": 27},
    {"name": "Will", "age": 28},
    {"name": "June", "age": 27}
]

for student in students:
    print("%(name)s is %(age)d years old" % student)

# Tom is 27 years old
# Will is 28 years old
# June is 27 years old

「1.3 利用format() 格式化函数」

Python2.6开始,新增了一种格式化字符串的函数str.format(),通过这个函数同样可以对字符串进行格式化处理。

class str(object):
    def format(self, *args, **kwargs):

  • format()函数中,使用“{}”符号来当作格式化操作符。

【例子】位置参数

print("{0} is {1} years old".format("Tom", 12))
print("{} is {} years old".format("Tom", 12))
print("Hi, {0}! {0} is {1} years old".format("Tom", 12))
# Tom is 12 years old
# Tom is 12 years old
# Hi, Tom! Tom is 12 years old

【例子】关键字参数

print("{name} is {age} years old".format(name="Tom", age=12))
# Tom is 12 years old

str = "{0} Love {b}".format('I', b='Lsgogroup')  # 位置参数要在关键字参数之前
print(str)  # I Love Lsgogroup

【例子】填充与对齐

  • ^、<、>分别是居中、左对齐、右对齐,后面带宽度。
  • :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充。

print('{:>8}'.format('3.14'))
print('{:<8}'.format('3.14'))
print('{:^8}'.format('3.14'))
print('{:0>8}'.format('3.14'))
print('{:a>8}'.format('3.14'))
#     3.14
# 3.14    
#   3.14  
# 00003.14
# aaaa3.14

【例子】浮点数精度

print('{0:.2f}{1}'.format(27.658, 'GB') )  # 27.66GB
print('{:.4f}'.format(3.1415926))  # 3.1416
print('{:0>10.4f}'.format(3.1415926))  # 00003.1416

【例子】进制,bdox分别是二进制、十进制、八进制、十六进制。

print('{:b}'.format(11))  # 1011
print('{:d}'.format(11))  # 11
print('{:o}'.format(11))  # 13
print('{:x}'.format(11))  # b
print('{:#x}'.format(11))  # 0xb
print('{:#X}'.format(11))  # 0XB

【例子】千位分隔符

print('{:,}'.format(15700000000))  # 15,700,000,000


(0)

相关推荐

  • 你在享受十一长假时,Python 已悄悄地变了

    来源:Python 技术「ID: pythonall」 Python 3.9 在经历了将近一年的试用期后,于 10月5日(2020年)发布了稳定版,意味着,在下一版本发布之前,不会在做改动,童鞋们可以 ...

  • python 通关字符串操作方法详解-大量案例

    给IT入门加星标,提升编程技能 IT入门(ID:learncode)整理  原作者:战争热诚 字符串序列用于表示和存储文本,python中字符串是不可变对象.字符串是一个有序的字符的集合,用于存储和表 ...

  • 说说Python有几种字符串格式化?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  • Python语言学习之字符串那些事:python和字符串的使用方法之详细攻略

    Python语言学习之字符串那些事:python和字符串的使用方法之详细攻略 python与字符串的那些事 1.字符串中只保留汉字 import re str = "hello,world! ...

  • Python基础学习笔记(一)变量与数据类型

    https://m.toutiao.com/is/J3fN6eK/ Python是一门易学的面向对象的程序设计语言,可以轻易地完成界面.文件.封装等高阶需求,可移植性好,有非常多功能强大的库与包,如N ...

  • 【详细】Python基础(一)

    文章目录 前言 1. Python环境的搭建 1.1 python解释器的安装 1.2 pycharm的安装 2. Python基础语法 2.1 基本语法 2.2 数据类型 2.3 标识符与关键字 2 ...

  • Python字符串三种格式化输出

    字符串格式化输出是python非常重要的基础语法,今天就把三种格式化输出做一个简单的总结,希望对大家有帮助. 格式化输出:内容按照一定格式要求进行输出. 1.使用占位符%输出 python2.6版本之 ...

  • 算法创作|蓝桥杯真题分糖果问题解决方法

    问题描述有n个小朋友围坐成一圈.老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:每个小朋友都把自己的糖果分一半给左手边的孩子.一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数.反复 ...

  • 算法创作|2020蓝桥杯真题-跑步锻炼

    问题描述小蓝每天都锻炼身体.正常情况下,小蓝每天跑 1 千米.如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2 千米.如果同时是周一或月初,小蓝也是跑 2 千米.小蓝跑步已经坚持了很长时间 ...

  • Python | 2020蓝桥杯真题-寻找2020

    问题描述小蓝有一个数字矩阵,里面只包含数字 0 和 2.小蓝很喜欢 2020,他想找到这个数字矩阵中有多少个 2020 .小蓝只关注三种构成 2020 的方式:· 同一行里面连续四个字符从左到右构成 ...

  • Python|蓝桥杯真题-单词分析

    问题描述 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度.小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个 ...

  • Python|2020蓝桥杯真题-跑步训练

    引言蓝桥杯是国内始终领跑的人才培养选拔模式并获得行业深度认可的IT类科技竞赛.问题描述小明要做一个跑步训练.初始时,小明充满体力,体力值计为 10000.如果小明跑步,每分钟损耗600 的体力.如果小 ...

  • Python|2018蓝桥杯真题练习—哪天返回

    问题描述 小明被不明势力劫持.后莫名其妙被扔到x星站再无问津.小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文.他决定在x星战打工.好心的老板答应包食宿,第1天给他1元钱.并且,以后 ...

  • Python | 2018蓝桥杯真题练习—猴子分香蕉

    问题描述 5只猴子是好朋友,在海边的椰子树上睡着了.这期间,有商船把一大堆香蕉忘记在沙滩上离去.第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉.第2只猴子醒来,重新把 ...

  • 题目 1471:【蓝桥杯】【入门题】【基础练习VIP】矩形面积交

    题目 1471:矩形面积交 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 平面上有两个矩形 ...

  • 题目 1477:【蓝桥杯】【入门题】字符串输入输出函数

    题目 1477:字符串输入输出函数 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 编写函数 ...