目录
回文字符串
模拟发红包的程序
以列表中的第一个数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)
部分运行结果如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)