python练习5-列表

dayup=1.0
dayfactor = 0.01
for i in range(365):
    if (i%7) in [6,0]:
        dayup *= 1-dayfactor
    else:
        dayup *= 1+dayfactor
print("dayup:{:.2f}".format(dayup))
a,n=map(int,(input('请输入不超过9的两个数:(格式如2 3)').split(' ')))
s=b=0
for i in range (n):
    b=a*(10**i)+b
    s+=b
print("s={}".format(s)) 
  • #斐波拉契数列
n=eval(input())
if n <=2:
    ls=[]
    for i in range(n):
        ls.append(1)
else:
    ls=[1,1]
    for i in range(2,n):
        a=ls[i-1]+ls[i-2]
        ls.append(a)
print(ls)
  • #在26个大写子母和26个小写字母和10个数字之间随机产生一个8位数的密码
import random
ls1=[chr(i) for i in range (65,91)]
ls2=[chr(i) for i in range (97,123)]
ls3=[i for i in range(1,11)]
ls=ls1+ls2+ls3
lt=[]
for i in range(8):
    x=random.choice(ls)
    lt.append(x)
print (lt)
  • 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:
    首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
    然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:
    Z:0 1 2 3 4 5 6 7 8 9 10
    M:1 0 X 9 8 7 6 5 4 3 2
    输入一个身份证号码,请你验证校验码的有效性,给出结论是否为合法身份证号码
    输入样例:
    320124198808240056
    输出样例:
    320124198808240056是合法身份证号
id=input()
wei=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
M=['1','0','X','9','8','7','6','5','4','3','2']
tol=0
for i in range(17):
    tol+=int(id[i])*wei[i]
z=tol%11
if (M[z])==(id[-1]):
    print('{} is valid'.format(id))
else:
    print('{} is invalid'.format(id))
对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:
输入在一行中给出正整数N。
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
输入样例:
321    
输出样例:
3 6
---------------
num = input()
b=len(num)
tol=sum(map(int,list(num)))
print('{} {}'.format(b,tol))
  • 本题要求统计给定整数M和N区间内素数的个数并对它们求和。
    输入格式:
    输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
    输出格式:
    在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。
    输入样例:
    10 31
    输出样例:
    7 143
import math
def isPrime(n):
    for i in range(2,int((math.sqrt(n)))+1):
        if(n%i==0):
            return False
    return True
M,N=map(int,input().split(' '))

tol=t=0
for i in range(M,N+1):
    if(isPrime(i)):
        print(i,end=' ')
        t+=1
        tol+=i
print('\n{} {}'.format(t,tol))
  • 重复元素判定。编写一个函数,接受列表作为参数,如果一个元素在列表中出现不止一次,则返回True,否则返回False。但不要改变原来列表的值。同时编写调用这个函数和测试结果的程序。
def isMore(ls):
    lt=[]
    for i in range(len(ls)):
        lt.append(ls.count(ls[i]))
    if lt.count(1)<len(ls):
        return True
    else:
        return False
print(isMore([1,2,3,'4',1])) 

你可能感兴趣的:(python)