首页 > 编程语言 > 详细

Python练习题2020

时间:2020-04-10 15:46:04      阅读:87      评论:0      收藏:0      [点我收藏+]

习题2

#获得用户输入的一个整数N,计算并输出N的32次方
a=eval(input("请输入一个整数:"))
v = a**3
print("N的32次方为{}".format(v))  
#获得用户输入的一段文字,将这段文字进行垂直输出
a = input("请输入一段文字:")
i = 0
for i in range(len(a)):
    print(a[i])
    i += 1
#获得用户输入的一个合法算式,例如:1.2+3.4,输出运算结果
a = eval(input("请输入一个算式:"))
print("算式的值为{}".format(a))

#获得用户输入的一个小数,提取并输出其整数部分
a = eval(input("请输入一个小数:"))
b = int(a)
print("小数的整数部分为{}".format(b))

习题三

#获得用户输入的一个整数,输出该整数百位及以上的数字

a = str(input("请输入一个整数"))

print(a[:-2])


#获得用户输入的一个字符串,将该字符串按照空格分割,然后逐行打印出来

a = str(input("请输入一串字符串"))
s = a.split()
for i in range(len(s)):
    print(s[i])

#程序读入一个表示星期几的数字(1-7),输出对应的星期字符串名称。例如:输入3,返回“星期三”
a = int(input("请输入数字(如:3)"))
if a == 1:
    s=‘一‘
elif a == 2:
    s=‘二‘
elif a == 3:
    s=‘三‘
elif a == 4:
    s=‘四‘
elif a == 5:
    s=‘五‘
elif a == 6:
    s=‘六‘
elif a == 7:
    s=‘七‘
else:
    s=‘?????,没有哒‘

print("星期"+s)

#设n是一任意自然数,如果n的各位数字反向排列所得自然数与n相等,则n被称为回文数。从键盘输入一个5位数字,请编写程序判断这个数字是不是回文数。
a = str(input("请输入一个5位数字,让我康康是不是回文数"))
if a == a[::-1]:
    print("是")
else:
    print("不是")
#输入一个十进制数,分别输出其二进制、八进制、十六进制字符串
a = int(input("请输入一个十进制数,让我来把它变成其它进制的数!!"))
print("十进制:{0:d}\n二进制:{0:b}\n八进制:{0:o}\n十六进制:{0:x}".format(a))
#输入一个年份,看输出是否是闰年。(闰年条件:能被4整除但是不能被100整除,或者能被400整除的年份都是闰年)
a = eval(input("请输出年份,让我来康康是不是闰年!!!"))

if (a%4 == 0 and a%100 != 0):
    print("{}是闰年".format(a))
elif a%400 == 0:
    print("{}是闰年".format(a))
else:
    print("{}不是闰年耶".format(a))
#最大公约数计算。获得两个整数,求出这两个整数的最大公约数和最小公倍数。最大公约数的计算一般使用辗转相除法,最小公倍数则使用两个数的乘积除以最大公约数。
a = eval(input("请输入第一个整数"))
b = eval(input("请输入第二个整数"))
def ZDGYS(a,b):
    a,b = (a,b) if a < b else (b,a)
    while b:
        a,b = b,a%b
    return a

print("这两个数的最大公约数为{}\n最小公倍数为{}".format(ZDGYS(a,b),a*b//ZDGYS(a,b)))

#统计不同字符个数,用户从键盘输入一行字符,编写一个程序,统计并输出其中英文字符、数字、空格和其他字符的个数
a = str(input("请输入一行字符,让我来统计统计字符个数!!!"))
zifu = 0
shuzi =0
kongge = 0
qitazifu = 0
for i in a:
    if i.isalpha():
        zifu += 1
    if i.isnumeric():
        shuzi += 1
    if i.isspace():
        kongge += 1
    else:
        qitazifu += 1
print("中英文字符的个数为:{0}\n数字的个数为:{1}\n空格的个数为:{2}\n其他字符的个数为:{3}".format(zifu,shuzi,kongge,qitazifu))
#羊车门问题。有三扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么。参赛者可以选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后面的山羊,然后允许参赛者更换自己的选择。请问,参赛者更换后能否增加猜中汽车的机会?——这是一个经典问题。请使用random库对这个随机事件进行预测,分别输出参赛者改变选择和坚持选择获胜的概率。

import random
s = random.randint(5000,10000)
Change = 0
NotChange = 0
for i in range(1,s+1):
    a = random.randrange(1,4)
    b = random.randrange(1,4)
    if a == b:
        NotChange += 1
    else:
        Change += 1
print("如果不换门的话,门后面有车的概率为{0}\n如果换门的话,门后面有车的概率为{1}\n".format(NotChange/s,Change/s))


第五章

#编写一个函数,打印200以内的所有素数,以空格分隔

def DaYinSuShu():
    for i in range(2,200):
        for j in range(2,i):
            if i%j == 0:
                break
        else:
            print(i,end=‘,‘)
DaYinSuShu()

# 编写一个函数计算传入字符串中数字、字母、空格以及其他字符的个数

def charNum(s):
    numNumber = 0
    letterNumber = 0
    spaceNumber = 0
    otherNumber = 0
    for i in s:
        if i.isnumeric():
            numNumber += 1
        elif i.isspace():
            spaceNumber += 1
        elif i.isalpha():
            letterNumber += 1
        else:
            otherNumber += 1
    print(‘The number of Number is:‘,numNumber)
    print(‘The number of Char is:‘,letterNumber)
    print(‘The number of Space is:‘,spaceNumber)
    print(‘The number of Other is:‘,otherNumber)


a = str(input(‘please input a string‘))
charNum(a)

技术分享图片

# 实现 isPrime() 函数,参数为整数,要有异常处理。如果整数是质数,返回 True,否则返回 False
def isPrime(s):
    while  True:
        try:
            if type(eval(s)) != type(1):
                print(‘InputError,please input a int‘)
            else:
                break
        except:
            s = input(‘InputError,please input a int‘)
    
    s = eval(s)

    for i in range(2,s):
        if s % i != 0:
            return True
        else:
            return False

a = input("请输入一个数,让我看来康康是不是质数")
print(isPrime(a))



# 实现 isNum() 函数,参数为一个字符串。如果这个字符串属于整数、浮点数或者复数的表示,则返回 True,否则返回 False。

#方法一
def isNum(s):
    try:
        s = type(eval(s))
        if s == int or s == float or s == complex:
            return True
        else:
            return False
    except:
        return False   
    
a = input("请输入一个字符串,让我来康康")
print(isNum(a))



# 方法二

def isNum(s):
    try:
        a = type(eval(s))
        if a == type(1):
            return True
        elif a == type(1.1):
            return True
        elif a == type(1+1j):
            return True
    except:
        return False
    
a = input("请输入一个字符串,让我来康康")
print(isNum(a))

# 编写一个函数,参数为一个整数 n。利用递归获取斐波那契数列中的第 n 个数并返回。
# 斐波那契数列 :这个数列从第3项开始,每一项都等于前两项之和。 

def Fibonacci(s):
    if s == 1:
        return 1
    elif s == 2:
        return 1
    else:
        return Fibonacci(s-1)+Fibonacci(s-2)
    
a = eval(input(‘请输入一个数,我们会返回他之前的斐波那契数列..‘))
print(‘斐波那契数列中第{0}个数为{1}‘.format(a,Fibonacci(a))) 
#英文字符频率统计。编写一个程序,对给定字符串中出现的 a~z 字母频率进行分析,忽略大小写,采用降序方式输出。

s = str(input(‘please input some string‘))
s = s.lower()
s = s.replace(‘ ‘,‘‘)
counts = {}
for i in s:
    counts[i] = counts.get(i,0)+1
ls = list(counts.items())
ls.sort(key = lambda x:x[1],reverse = True)
for i in range(len(counts)):
    word,count = ls[i]
    print(‘{:<5}{:>10}‘.format(word,count))
#中文字符频率统计。编写一个程序,对给定字符串中出现的全部字符(含中文字符)频率进行分析,采用降序方式输出。

a = str(input("please inpur some Chineses"))
a = a.replace(‘ ‘,‘‘)
counts = {}
for i in a:
    counts[i] = counts.get(i,0) + 1
ls = list(counts.items())
ls.sort(key=lambda x: x[1],reverse = True)
for i in range(len(counts)):
    word,count = ls[i]
    print(‘{:<10}{:>5}‘.format(word,count))
#随机密码生成。编写程序在26个字母大小写和9个数字组成的列表中随机生成10个8位数密码。
import random
txt = ‘0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM‘
ls = list(txt)
for i in range(10):
    a = ‘‘
    print(‘密码{}:‘.format(i+1))
    for i in range(8):
        a += ls[random.randrange(len(ls))]
    print(a)

#方法二:

import random
txt = ‘0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ‘
ls = list(txt)
for i in range(10):
    a = ""
    for i in range(8):
        a = random.choice(ls) + a
    print(a)

#重复元素判断。编写一个函数,接收列表作为参数,如果一个元素在列表中出现了不止一次,则返回True,但不改变原来列表的值。同时编写调用这个函数和输出测试结果的程序。
def ChongFuPanDuan(txt):
    txt = txt.replace(‘ ‘,‘‘)
    counts = {}
    for i in txt:
        counts[i] = counts.get(i,0) + 1
    
    num = list(counts.values())
    for i in range(len(num)):
        if num[i] > 1:
            return True




txt = input(‘请输入字符,让我康康有没有重复的:‘)
print(ChongFuPanDuan(txt))
#重复元素判定续。利用集合的无重复性改编上一个程序,获得一个更快更简洁的版本。
def ChongFuPanDuan(txt):
    txt = txt.replace(‘ ‘,‘‘)
    st = set(txt)
    if len(st) != len(txt):
        return True

    #counts = {}
    #for i in txt:
    #    counts[i] = counts.get(i,0) + 1
    
    #num = list(counts.values())
    #for i in range(len(num)):
    #    if num[i] > 1:
    #        return True

txt = input(‘请输入字符,让我康康有没有重复的:‘)
print(ChongFuPanDuan(txt))

第七章

#输入一个文件和一个字符,统计该字符在文件中出现的次数
f = open(‘/Users/denglinzhe/Documents/hamlet.txt‘,‘r+‘)
fo = f.read()
print(fo)
s = input(‘please input a ch‘)
a = 0
for i in range(len(fo)):
    if s == fo[i]:
        a += 1
print(‘{}在该文本中出现了{}次‘.format(s,a))

#假设有一个英文文本文件,编写一个程序读取其内容,并将里面的大写字母变成小写字母,小写字母变成大写字母。

#s = ‘asdffASDFG‘
f = open(‘/Users/denglinzhe/Documents/hamlet.txt‘,‘r‘,encoding =‘utf-8‘)
fo = f.read()
c = ‘‘
for i in fo:
    if i in ‘qwertyuiopasdfghjklzxcvbnm‘:
        a = i.upper()
    elif i in ‘QWERTYUIOPASDFGHJKLZXCVBNM‘:
        a = i.lower()
    else:
        a = i
    c += a
print(c)
        
# 编写一个程序,生成一个10x10的随机矩阵并保存文件(空格分隔行向量,换行分隔列向量),在写程序将刚才保存的文件另存为CSV格式,用Excle或文本编辑器打开康康结果对不对。

import random
f = open(‘/Users/denglinzhe/Documents/123.txt‘,‘w‘,encoding=‘utf-8‘)
s = []
for i in range(10):
    a = []
    for j in range(10):
        a.append(str(random.randint(1,9)))
    s.append(a)
for row in s:
    f.write(‘  ‘.join(row)+‘\n‘)
f.close()
# 编写一个程序,读取一个Python源代码文件,将文件中所有除保留字外的小写字母替换成大写字母,生成后的文件要能够被Python解释器正确执行。

BaoLiuZi = [‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘,
            ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘finally‘,
            ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘,
            ‘lambda‘, ‘nonlocal‘, ‘not‘, ‘or‘, ‘pass‘, ‘raise‘,
            ‘return‘, ‘try‘, ‘while‘, ‘time‘, ‘with‘, ‘yield‘, ‘True‘,
            ‘False‘, ‘None‘]

f1 = open(‘/Users/denglinzhe/Documents/Untitled-1.py‘,‘r‘,encoding = ‘utf-8‘)
f2 = open(‘/Users/denglinzhe/Documents/Untitled-5.py‘,‘w‘,encoding = ‘utf-8‘)
fo1 = f1.readlines()
dic = {}
num = 0
for line in fo1:
    for word in BaoLiuZi:
        if word in line:
            num += 1
            dic[‘编号{}‘.format(str(num))] = word
            line = line.replace(word,‘编号{}‘.format(str(num)))
        else:
            continue


    
    line = line.upper()
    for key in dic.keys():
        if key in line:
            line = line.replace(key,dic[key])    
    
    fo2 = f2.write(line)

#编写一个程序,要求能够将元素为任意Python支持的类型(包括含有半角逗号的字符串)的列表转储为CSV格式文件,并能够重新正确解析为列表。

def InputAndSave_csv(ls,Name):
    value = input(‘请向列表添加第1个元素‘)
    ls.append(value)
    num = 1
    while value != ‘‘:
        num += 1
        value = input(‘请向列表添加第{}个元素(如需结束输入,请输入空格)‘.format(num))
        ls.append(value)
    print(‘列表已输入完毕,您输入的列表为:\n{}‘.format(ls))
    
    #将逗号的点换为点
    for i in range(len(ls)):
        if ‘,‘ in ls[i]:
            ls[i] = ls[i].replace(‘,‘,‘.‘)

    f = open(‘/Users/denglinzhe/Documents/{}.csv‘.format(Name),‘w‘,encoding = ‘utf-8‘)
    f.write(‘,‘.join(ls)+‘\n‘)
    f.close()
    print(‘\n恭喜你~,已成功保存为{}.csv文件‘.format(Name))

def Read_csv(Name):
    f = open(‘/Users/denglinzhe/Documents/{}.csv‘.format(Name),‘r‘,encoding = ‘utf-8‘)
    fo = f.read().strip(‘\n‘).split(‘,‘)
    #将替换的点换为逗号
    for i in range(len(fo)):
        if ‘.‘ in fo[i]:
            fo[i] = fo[i].replace(‘.‘,‘,‘)
    print(‘\n文件{}.csv读取中....请稍后\n‘.format(Name))
    print(fo)
    f.close()

def main():
    ls = []
    Name = input(‘请输入您将要保存的csv文件名称:‘)
    InputAndSave_csv(ls,Name)
    Read_csv(Name)

main()


第八章

#1.读取保存在本地的html文件
#2.提取页面中的链接文件
#3.在屏幕上显示提取到的链接文件
#4.将提取到的链接保存到文件


def DuQuWenJian(inputfile):
    f = open(inputfile,‘r‘,encoding=‘utf-8‘)
    fo = f.readlines()
    f.close()
    return fo

def TiQuImgLianJei(filetxt):
    urls = []
    for line in filetxt:
        if ‘img‘ in line:
            url = line.split(‘src=‘)[-1].split(‘"‘)[1]
            if ‘http‘ in url:
                urls.append(url)
    return urls

def XianShiLianJei(TiQuDaoDeLianJei):
    count = 0
    for url in TiQuDaoDeLianJei:
        count += 1
        print(‘第{}张图片URL:{}‘.format(count,url))

def ShuChuDaoWenJian(outputfile,TiQuDaoDeLianJei):
    f = open(outputfile,‘w‘,encoding = ‘utf-8‘)
    for line in TiQuDaoDeLianJei:
        f.write(line + ‘\n‘)
    f.close()
    print(‘\n-------------------------------------------‘)
    print("\n链接已保存至{}".format(outputfile))





def main():

    inputfile = ‘/Users/denglinzhe/Documents/Untitled-1.txt‘
    outputfile = ‘/Users/denglinzhe/Documents/pic.txt‘
    filetxt = DuQuWenJian(inputfile)
    TiQuDaoDeLianJei = TiQuImgLianJei(filetxt)
    XianShiLianJei(TiQuDaoDeLianJei)
    ShuChuDaoWenJian(outputfile,TiQuDaoDeLianJei)


main()

#用户编写一个年份,编写程序判断是不是闰年,如果年份能够被400整除,则是闰年;如果年份能被4整除但是不能被100整除也为闰年
while 1:
    s = eval(input("请输入年份"))
    if (s % 400 == 0) or (s % 4 == 0 and s % 100 != 0):
        print(‘{}是闰年‘.format(s))
    else:
        print("{}不是闰年".format(s))


Python练习题2020

原文:https://www.cnblogs.com/denglinzhe/p/12672782.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!