python 判断回文字符串 模拟发红包程序 以列表L[0]为分界点重排列表

python 判断回文字符串 模拟发红包程序 以列表L[0]为分界点重排列表,第1张

目录

回文字符串

模拟发红包的程序

以列表中的第一个数L[0]作为分界点产生一个新的列表


回文字符串

题目要求:写一个Python程序,判断一个字符串是否为回文字符串。 所谓回文字符串,即字符串的顺序和逆序完全相同,如字符串"ABCBA"、"ABCCBA"就是一个回文字符串,"ABCBAC"就不是。 注:不得使用reverse()方法或reversed()函数

代码如下:

o = input('请输入一字符串:')
w = int((len(o)+1)/2)
for i in range(w):
    if o[i] == o[len(o)-1-i]:
        s = 1
    else:
        s = 0
if s == 1:
    print('这是一个回文字符串')
else:
    print('这不是一个回文字符串')

部分运行结果如下:

模拟发红包的程序

题目要求:根据毕导视频中微信抢红包规则,每个人能抢到的金额服从0.01到2倍剩余均值之间的均匀分布,也就是n个人抢红包,第一个人最多抢到2/n倍的金额。要求:输入金额和人数,输出相应的红包金额。最少为0.01元,不得有负数。

代码如下:

import random
s = (input('请输入红包金额:'))
x = eval(input('请输入人数:'))
s = float(s)
slist = []
for i in range(x-1):
    e = 2 * (s/(x-i))
    t = round(random.uniform(0.01,e),2)
    s = s - t
    slist.append(t)
slist.append(round(s,2))
for a in range(len(slist)):
    print(f'第{a+1}个红包为:{slist[a]}元')

部分运行结果如下:

以列表中的第一个数L[0]作为分界点产生一个新的列表

题目要求:给定一个列表L,以列表中的第一个数L[0]作为分界点产生一个新的列表,将L中小于或等于L[0]的数放在其左边,比L[0]大的放在其右边。

这题我写了两种思路,第一种可能有点绕,我也是慢慢试出来的,将小于L[0]的数字放到它前面,否则就放在后面,可能再写一个elif判断等于L[0]或者根据后来调试设置q=l[1::]也可以,就不会出现需要循环后还需要删去一个L[0]的情况了,第二种是老师指导过类似的思维方式将两个列表相连接。

第一种代码如下:

l = list(eval(input('请输入一个列表:')))
q = l[::]
R = [l[0]]
for i in q:
    if i < l[0]:
        R[R.index(l[0]):R.index(l[0])] = [i]
    else:
        R.append(i)
R.remove(l[0])
print('The list is ',R)

还可以这么写:

l = list(eval(input('请输入一个列表:')))
q = l[1::]
R = [l[0]]
for i in q:
    if i < l[0]:
        R[R.index(l[0]):R.index(l[0])] = [i]
    else:
        R.append(i)
#R.remove(l[0])
print('The list is ',R)

部分运行结果如下:

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/714814.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-24
下一篇 2022-04-24

发表评论

登录后才能评论

评论列表(0条)

保存