Python练习题——初学Python记录

   日期:2020-05-28     浏览:100    评论:0    
核心提示:前言自学python差不多两个星期了,找点题目练练手顺便记录一下,希望大佬们多多指点题目1 判断一个整形数是否为回文数回文数定义即为数字翻转后仍为原来的数字因为在学校学过c++,所以这类题型还是比较简单的。循环取余就可以做到最基本的回文数判断,这里就不过多赘述了num = int(input(输入一个十进制整数:))s = 0n = numwhile num > 0 : s = s * 10 + num num = num // 10if(s==n):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

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或许有各种各样的低级错误,望各位大佬海涵并指出问题,如果有好的解题思路或者疑问欢迎在评论区提出,感谢。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服