python复习2

目录

1.字符串的内部方法(下)

2.求出所有的水仙花数

3.求出所有的四叶玫瑰数 

4. 逆序输出

 5.百鸡百钱问题

6. 闰年问题升级版


1.字符串的内部方法(下)

(6)截取字符串

  • lstrip(chars=None)左侧不留白
  • rstrip()右侧不留白
  • strip()左右不留白

这三种方法都有一个chars的参数,默认设置为None,意思是去除空白,我们可以为参数传入字符串,则会按照单个字符串为单位进行匹配剔除

  • removeprefix(prefix)删除指定的前缀
  • removesuffix(suffix)删除指定的后缀

以上两种方法能剔除具体的子字符串

(7)拼接&拆分

  • partition() / rpartition() 将字符串以参数指定的分隔符为依据进行切割,并将切割后的结果返回一个三元组(即三个元素的元组)
  • split() / rsplit()该方法有两个默认参数,第一个参数是指定分隔符,默认参数为空格;第二个参数指定分割次数,默认值为-1
  • join(interable)拼接

(8)格式化字符串的方法

使用一对花括号来表示替换字符,真正的内容放在format()方法的参数中 

2.求出所有的水仙花数

水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数。水仙花数是指一个三位数,它的每一位上的数字的三次幂之和等于它本身

for i in range(100,1000):
    x=i//100
    y=i//10%10
    z=i%10
    if x**3+y**3+z**3==i:
        print(i, "是水仙花数")

 

3.求出所有的四叶玫瑰数 
四叶玫瑰数是指四位数各个位上的数字的四次方之和等于它本身的数
numbers=1000
while numbers<10000:
    x=numbers//1000
    y=numbers//100%10
    z=numbers//10%10
    w=numbers%10
    if x**4+y**4+z**4+w**4==numbers:
        print(f'{numbers}是四叶玫瑰数')
    numbers+=1

 

4. 逆序输出
  • append()  在列表末尾添加一个指定的元素
  • join函数是一个字符串操作函数,展开写应该是str.join(item),item表示一个成员,括号里只能有一个成员。   

 ','.join('abc')表示将字符串abc中的每个字母用","隔开,再拼接成一个字符串,结果为'a,b,c'

  join里放列表、元组、字典也可以

"""利用切片逆序输出"""
str_a=input('输入字符串:')
print(str_a[::-1])

"""利用循环逆序输出"""
str_a=input('输入字符串:')
str_list=[]
for i in range(len(str_a)-1,-1,-1):
    str_list.append(str_a[i])
print(''.join(str_list))

 

 5.百鸡百钱问题

公鸡每只5元,母鸡每只3元,小鸡3只每元,要求用100元买100只鸡(三种类型鸡都要买),问公鸡,母鸡,小鸡各买多少只?

counts=0
for x in range(1,20):
    for y in range(1,33):
        z=100-x-y
        if z>0 and 5*x+3*y+z/3==100:
            counts+=1
            print(f"第{counts}种买法,公鸡{x},母鸡{y},小鸡{z}")

6. 闰年问题升级版

输入年月日,输出该日期是否为闰年,并且输出该日期是此年份的第几天

闰年判断条件(两个条件满足任意一个即为闰年):

  1. 能被4整除,并且不能被100整除
  2. 能被400整除
year=int(input("输入年份"))
month=int(input("输入月份"))
day=int(input("输入日期"))
#一三五七八十腊,三十一天永不差,四六九十一,都是三十天;二月28天为平年,29天为闰年
date_list=[31,29,31,30,31,30,31,31,30,31,30,31]
count_day=day
if (year%4==0 and year%100!=0) or year%400==0:
    print(f"{year}年是闰年")
    date_list[1]=29
else:
    print(f"{year}年是平年")
    date_list[1] = 28
for i in range(month-1):
    count_day+=date_list[i]
print(f"{year}年{month}月{day}日是当年的第{count_day}天")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值