函数小练习(输出一年的第几天,将重复的ip地址找出,将字母统一成大写模式)-python

这篇博客包含了三个Python编程练习:1) 计算输入日期在当年的第几天,考虑了闰年和平年的规则;2) 检测并找出列表中重复的IP地址;3) 将输入的字符串所有字母转换为大写形式。通过这些练习,可以提升Python基础操作和问题解决能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:
问题描述

请编写一个小程序,实现输入任意年月日,计算出这是这一年的第几天,如,输入20210203,则提示这是2021年的第34天

查了一下闰年和平年的资料

1、含义不同。遇到整百年时要被400整除才是闰年,否则为平年;遇到非整百年时,只要被4整除就是闰年,不能被4整除为平年。
2、天数不同。闰年的2月有29天,平年的2月有28天。

def whichday(y,m,d):
   '''
功能:输入任意年月,计算这是这一年的哪一天
   offset是为了区别是闰年还是平年
   函数没有返回值
'''
   if y%4==0 and y%100!=0:
      offset=1
   else:
      offset=2
   if m==1:
      print('这是一年第'+str(d)+'天')
   if m==2:
      print('这是一年第'+str(31+d)+'天')
   if m==3 or m==5 or m==7:
      print('这是一年第'+(m-1)*30+(m-1)/2+d-offset+'天')
   if m in(4,6,8,10,12):
      print('这是一年第'+(m-1)*30+(m)/2+d-offset+'天')
   
   if m in(9,11):
      print("这是一年第"+(m-1)*30+(m+1)/2+d-offset+'天')
#执行这两个步骤,会自动调用whichday函数
#if __name__=='__main__':
   #whichday(2021,2,3)
day=str(input('请输入年月日(如20210203这样的形式)\n'))
print('输入的年月日为:',day[:4]+'年',day[5:6]+'月',day[7:]+'日')
whichday(int(day[:4]),int(day[5:6]),int(day[7:]))

执行结果
在这里插入图片描述
二:
问题描述

下面list中提供了几组ip地址,编写一个函数,将list中重复出现的ip地址找出来
list=[‘192.168.1.1’,‘10.192.66.72’,‘10.199.88.132’,‘192.168.1.1’,‘1.192.168.163’,‘1.2.3’,‘1.2.3’]
‘1.2.3’是我加上去测试的

代码实现

def find_ip(list):
   l=[]#用来装没有重复过的ip
   m=[]#用来装重复过的ip
   for item in list:#遍历列表
      str_1="".join(item)#将列表转换为字符串
      if str_1 not in l:
         l.append(str_1)
      else:
         m.append(str_1)
   return m#返回重复过的ip
list=['192.168.1.1','10.192.66.72','10.199.88.132','192.168.1.1','1.192.168.163','1.2.3','1.2.3']
print('提供的几组ip地址',list)
print()
print('在list中重复出现的ip地址',find_ip(list))


执行结果
在这里插入图片描述
三:
问题描述

编写一个函数,把输入的字母统一成大写模式,如输入"go big or go home",输出为"GO BIG OR GO HOME

代码实现

def printcapital(string):
   print("原来的字符串",string)
   print("将字母统一成大写模式:",string.upper())
string='go big or go home'
printcapital(string)


执行结果
在这里插入图片描述
**************就到这里啦


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学无止境****

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值