1.列表插入
描述
输入一个字符串 s 和一个非负整数 i, 列表 ls = [‘2’, ‘3’, ‘0’, ‘1’, ‘5’],在指定的位置 i 和 列表末尾分别插入用户输入的字符串 s。当 i >=5 时,相当于在列表末尾插入两次字符串 s 。
输入格式
第一行输入一个字符串
第二行输入一个非负整数
输出格式
插入新数据后的列表
s =str(input())
i =int(input())
ls =['2','3','0','1','5']if i >=0:
ls.insert(i,s)
ls.append(s)else:
i =int(input())print(ls)
2.列表排序
描述
用户输入一串字符,将其每个字符转化为列表的元素,并对其中的数据按升序排序。
输入格式
一串字符,如
2135462
输出格式
[‘1’, ‘2’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’]
s =str(input())
ls =list(s)
ls.sort()print(ls)
3.生成随机密码
请编写程序,生成随机密码。具体要求如下:
(1)使用 random 库,采用 0x1010 作为随机数种子。
(2)密码 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*中的字符组成。
(3)每个密码长度固定为 10 个字符。
(4)程序运行每次产生 10 个密码,每个密码一行。
(5)每次产生的 10 个密码首字符不能一样。
import random
random.seed(0x1010)
s="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*"
ls=[]
excludes=""whilelen(ls)<10:
pwd=""for i inrange(10):
pwd += s[random.randint(0,len(s)-1)]if pwd[0]in excludes:continueelse:
ls.append(pwd)
excludes += pwd[0]print("\n".join(ls))
4.杨辉三角形
描述
输出10行的杨辉三角形
杨辉三角,是二项式系数在三角形中的一种几何排列。
每行端点与结尾的数为1,其余每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和。即 C(n+1,i)=C(n,i)+C(n,i-1)。
ls =[]for i inrange(10):
ls2 =[]if i ==0:
ls2 =[1]elif i ==1:
ls2 =[1,1]else:for j inrange(i +1):if j ==0or j ==i:
ls2.append(1)else:
ls2.append(ls[i-1][j-1]+ ls[i-1][j])
ls.append(ls2)for i inrange(10):for j inrange(i+1):print(ls[i][j],end=' ')print()
5.分期付款计算器
描述
购买房屋或大宗家电时,很多时候可以分期付款,还款方式分为等额本息和等额本金两种:
等额本息(Average Capital Plus Interest:ACPI)还款公式:
每月还款额=贷款本金月利率(1+月利率)**总还款月数/((1+月利率)**总还款月数-1)
等额本金(Average Capital:AC)还款公式:
每月还款额=贷款本金/总还款月数+(贷款本金-累计已还款本金)*月利率
设计一个程序计算分期付款时每一期的应还款额,还款方式输入错误时,输出“还款方式输入错误”。
输入格式
4行输入:
第1行输入一个浮点数,表示贷款本金
第2行输入一个整数,表示分期月数
第3行输入一个字符串,表示还款方式,限定只能输入"ACPI"或"AC",分别表示等额本息和等额本金
第4行输入一个浮点数,表示月利率
输出格式
输出每月还款额,等额本金方式时,输出的数字间用逗号分隔(用round()函数保留2位小数)
还款方式输入错误时,输出“还款方式输入错误”
bj =float(input())
mon =int(input())
w =input()
l =float(input())
ls =[]
yh =0if w notin['AC','ACPI']:print('还款方式输入错误')elif w =='AC':for i inrange(mon):
hk = bj/mon +(bj-yh)*l
yh = yh +(bj/mon)
hk=round(hk,2)
ls.append(hk)print(ls)else:
hk =(bj*l*(1+l)**mon)/((1+l)**mon-1)
hk =round(hk,2)print(hk)
6.模拟布朗运动
描述
花粉等悬浮在流体中的微粒都会做一个无规则的运动,这就是布朗运动。我们可以使用随机数来模拟这种运动。微粒的开始坐标为(0,0),随后随机选择运动方向和运动距离。假设当前坐标为(Xold,Yold),Xold在[-1,1]列表中随机选择出运动的方向Dx、在[1,2,3,4,5,6,7,8,9,10]列表中随机选择出水平移动的距离Hx,则Xnew=Xold+DxHx。Yold坐标也一样,独立于Xold选择运动方向Dy和运动距离Vy,则有Ynew=Yold+DyVy。这样微粒就会移动到新坐标(Xnew,Ynew)。
题目要求:
输入一个整数sd作为随机数的种子
模拟微粒五次无规则运动,将坐标依次存入列表,并打印列表(形如:[(0, 0), (2, 6), (7, -4), (17, 6), (24, -3), (15, -12)])
计算微粒5次布朗运动所形成的坐标的欧式距离之和(二维坐标(x1,y1)与(x2,y2)的欧式距离为sqrt((x1-x2)**2 +(y1-y2)**2))。结果保留两位小数输出。
输入格式
输入为一个整数,例如(-5)。
输出格式
输出为两行,第一行是微粒五次运动后的坐标值形成的列表,形如:[(0, 0), (2, 6), (7, -4), (17, 6), (24, -3), (15, -12)];第二行是五次运动的欧式距离之和(保留两位小数)。
import random
import math
random.seed(int(input()))
tup1 =(0,0)
arr =list()
arr.append(tup1)for i inrange(5):
Xold = arr[i][0]
Dx = random.choice([1,-1])
Hx = random.choice([1,2,3,4,5,6,7,8,9,10])
Xnew = Xold + Dx * Hx
Yold = arr[i][1]
Dy = random.choice([1,-1])
Vy = random.choice([1,2,3,4,5,6,7,8,9,10])
Ynew = Yold + Dy * Vy
tup1 =(Xnew,Ynew)
arr.append(tup1)print(arr)sum=0for i inrange(5):
temp = math.sqrt((arr[i][0]- arr[i+1][0])**2+(arr[i][1]-arr[i+1][1])**2)sum=sum+ temp
print(round(sum,2))
版权归原作者 就这样吗? 所有, 如有侵权,请联系我们删除。