Python实现:P5707 【深基2.例12】上学迟到


题目

在这里插入图片描述

源代码

import math

s, v = map(int, input().split())
n = 8 * 60 + 24 * 60  # 两天总共可以走的时间
t = math.ceil(s / v) + 10  # math.ceil向上取整
n = n - t  # 得出剩下的时间
if n > 24 * 60:  # 判断是否在前一天
    n -= 24 * 60
b = n % 60  # 出发的分
a = n / 60  # 出发的时
if a < 10:
    if b < 10:
        print("0%d:0%d" % (a, b))
    else:
        print("0%d:%d" % (a, b))
else:
    if b < 10:
        print("%d:0%d" % (a, b))
    else:
        print("%d:%d" % (a, b))

解题思路

由于yyy需要当天早上8点前到达,可以提前一天出发,但不能提前超过一天,所以可以计算得出最多需要的时间为n,t为路上需要花费的时间,两者相减即可得到最晚出发时间。
然后对比判断最晚出发时间与24的大小。看是提前一天出发还是当天出发,由于回答不要求显示头一天出发还是当天出发,因此头一天的话直接减去一天的分钟就行。利用除法和取余求得出发的时和分;最后判断时和分是否需要补零来按规范输出。

math.ceil

在这里插入图片描述

格式化输出

#1、字符串拼接:使用+进行连接。
#例1
name='夜上夏叶'
age=19
print('My name is'+name+', and my age is '+str(age))

输出结果为:My name is 夜上夏叶, and my age is 19
注意:数字必须通过str()转换为字符串类型才能进行拼接

#2、占位符:类似C语言的%d、%s等
print("格式化字符串" % 变量1)
print("格式化字符串" % (变量1, 变量2...))
#例2
print('My name is %s, and my age is %d' % (name,age)

print() 函数使用以 % 开头的转换说明符对各种类型的数据进行格式化输出。

转换说明符只是一个占位符(也称为格式化操作符),它会被后面表达式(变量、常量、数字、字符串、加减乘除等各种形式)的值代替。
在这里插入图片描述
详见:Python变量的格式化输出

#3、使用字符串中的format方法也可以进行字符串的格式化操作。它的基本语法是通过 {} 和 : 来代替以前的 %。
#1. 通过位置参数 
str1 = '{0}的学号是{1},{0}的年龄是{2}。'
print(str1.format('夜上夏叶', 1002, 19))

#2. 通过关键字参数名称 
str2 = '{name}的学号是{sno},{name}的年龄是{age}。' 
print(str2.format(name = '张三', sno = 1001, age = 20)) 
#format方法返回的是格式化的字符串副本,并不会改变原字符串内容。 
print(str1)   #{0}的学号是{1},{0}的年龄是{2}。 
print(str2)   #{name}的学号是{sno},{name}的年龄是{age}。

#3. 通过对象属性 
class Student: 
	def __init__(self, name, sno, age): 
		self.name = name 
		self.sno = sno 
		self.age = age 
s = Student('小明', 2001, 20) 
my_str = '{stu.name}的学号是{stu.sno},{stu.name}的年龄是{stu.age}。' 
print(my_str.format(stu = s))    #小明的学号是2001,小明的年龄是20。

在这里插入图片描述
在这里插入图片描述

#4、f'表达式':(f-String格式化)
#例3
print(f"My name is {name}, and my age is {age}")

注意:f可以换成F

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值