Python练习题——初学Python记录

前言

自学python差不多两个星期了,找点题目练练手顺便记录一下,希望大佬们多多指点

题目

1 判断一个整形数是否为回文数

回文数定义即为数字翻转后仍为原来的数字
因为在学校学过c++,所以这类题型还是比较简单的。循环取余就可以做到最基本的回文数判断,这里就不过多赘述了

num = int(input("输入一个十进制整数:"))
s = 0
n = num
while num > 0 :
    s = s * 10 + num % 10
    num = num // 10
if(s==n):
    print("YES")
else:
    print("NO")

回文数这类题感觉还挺常见,这里给出的是最基本的

2 被三整除

题目描述

输入包括两个整数l和r(1 <= l <= r <= 1e9), 表示要求解的区间两端。

输出要求

输出一个整数, 表示区间内能被3整除的数字个数。
众所周知能被3整除的数,各位数字相加能被3整除根据这个原理可以进行判断

def fate(n): # 编写函数
    a=0
    while n > 0 :  #获取各位数字之和
        a=n%10+a
        n=(n-a)//10
    return (a)
num_first = int(input("输入一个数字:"))
num_end = int(input("请输入最后一个数字:"))
for i in range (num_first,num_end): # 循环
    if(fate(i)%3==0):
        print(i)

3.骨牌推到

题目

输入描述

输入为一个长度不超过1000的,仅包含‘L’,‘R’,‘.’的字符串

输出描述

根据输入,输出一个仅由‘L’,‘R’,‘.’组成的结果字符串

示例

输入

.L.R...LR....L.

输出

LL.RR.LLRRRLLL.

这一题想了好长时间,尝试了许多方法,一开始我的思路过于麻烦,写了一堆函数去判断每一个L,R的位置,后来查阅了一些资料,反应过来,可以利用两次循环遍历,第一遍将R右边的.全部转换为R,并构造一个列表储存每一次R出现的次数。第二遍循环从最后一位开始,通过中间量temp来判断是向左还是向右倾倒。顺带一提我这里用的是PyCharm题目3

bone=list(input("请输入仅包涵‘L’,‘R’,‘.’的字符:"))
power=[]# 储存
temp=0# 用于判断的量
power=[0 for i in range(0,len(bone))]
# 第一次遍历
for i in range (0,len(bone)):
    if(bone[i-1]=='R' and bone[i]=='.'):#R右方相邻的.转换成R
        bone[i]='R'
        power[i]=power[i-1]+1# 记录R的次数
print(bone)# 为方便观看我在这里输出一下
print(power)
# 第二次遍历
for i in range (len(bone)-2,0,-1):
    if(bone[i+1]!='L'):
        continue
    temp=power[i+1]+1# 循环一次给temp赋值一次
    if(bone[i]=='.' or temp < power[i]):# 如果此时temp小于power[i]则为L
        bone[i]='L'
    elif(bone[i]=='R' and temp == power[i]):# 如果此时temp恰好与power[i]相等则为.
        bone[i]='.'
print(bone)


这一题应该是这里面最难的了。

结语

本人刚开始学习Python或许有各种各样的低级错误,望各位大佬海涵并指出问题,如果有好的解题思路或者疑问欢迎在评论区提出,感谢。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值