Python练习题

从做题的水平就可以看出来自己有多菜~安慰自己好好学习进步空间会变大的!!!

1、2、3、4这四个数字能组成多少个互不相同且没有重复数字的两位数

n=list(range(1,5))
k=[]
for i in n:
    num=[i*10+j for j in n if i!=j]#列表生成式
    k.extend(num)#extend可以批量添加元素

print(n,'共生成',len(k),'个符合条件的两位数')
for l in k:
    print(l)

1、2、3、4这四个数字能组成多少个互不相同且没有重复数字的三位数

n=[1,2,3,4]
k=[]
for i in n:
    for j in n:
        num=[i*100+j*10+k for k in n if i!=j&j!=k&k!=i]
        k.extend(num)

print(n,'共生成 ',len(k),'个符合条件的三位数')
for l in k:
    print(l)

输入三个整数x、y、z,把三个数从小到大输出

#判断是否为数字.isdigit()
def sortnum(x,y,z):
    num=[x,y,z]#生成列表,用列表排序
    num.sort()
    return(num)

x,y,z=input('input 3 integer:').split()
if(x.isdigit()&y.isdigit()&z.isdigit()):
    print(sortnum(x,y,z))
elif:
    print('input is not interger')

输入一行字符,分别统计其中 英文字母、空格、数字和其他字符个数
字符不能是换行

try:
    str=input('输入一行字符')
    if str=='':
        raise ValueError
    else:
        num_alpha=0
        num_space=0
        num_digit=0
        num_other=0
        for ch in str:
            if ch=='/n':
                break
            elif ch.isalpha():
                num_alpha=num_alpha+1
            elif ch==' ':
                num_space=num_space+1
            elif ch.isdigit():
                num_digit=num_digit+1
            else:
                num_other=num_other+1 
        print(num_alpha,num_space,num_digit,num_other)
except ValueError as e:
    print('invalid value:输入换行符')
finally:
    print('end')

猜随机数并统计时间

import random,time
key=random.randint(1,100)

n=input('input interger between 1 and 100: ')
start=time.clock()
while int(n)!=key:
    if n.isdigit()==False:
        raise ValueError('input imust be an integer') 
    else:
        n=int(n)
    if n<key:
        print(n,'<key')
    else:
        print('%s>key' %n)
    n=input('input interger between 1 and 100: ')
print('the key is ',n)
elapsed = (time.clock() - start)
print("Time used:",elapsed)
#input interger between 1 and 100: 50
#50>key
#input interger between 1 and 100: 30
#the key is  30
#Time used: 2.374405963546446
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值