python例题练习

1、 题目:输出9x9乘法表

程序分析:分行与列的考虑,共9行9列,i控制行,j控制列

笔记:

%-5d:-代表左对齐,不足右边默认补5个空格。end=’'意思是末尾不换行,加空格。

for i in range(1,10):
     for j in range(1,10):
         if j <= i:
             result=i*j
             print('%d * %d=%-5d'%(i,j,result),end='')
     print('')

2、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。

cnt = 0 #计算结果的总数
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if i!=j and i!=k and j!=k:#去掉重复的三位数
                print(i*100+j*10+k)
                cnt+=1
print(cnt)

3、输入三个整数x,y,z,请把这三个数由小到大输出。

程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

l = []
for i in range(3):
    x = int(input('integer:\n'))
    l.append(x)
l.sort()
print(l)
笔记:

append() 方法用于在列表末尾添加新的对象。
sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。默认是升序
sort()方法语法:list.sort(cmp=None, key=None, reverse=False)
参数
cmp – 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)。

4、判断101-200之间有多少个素数,并输出所有素数。

count=0
for i in range(101, 201):
    # for j in range(2, i):
    for j in range(2, int(i / 2)):  # 优化循环次数
        if i % j == 0:
            break
    else:
        count += 1
        print(i)
print("The total is ",count)

5、利用递归方法求5!

递归公式:fact=num*fact(num-1)

def fact(num):
    if num == 1:
        return 1
    else:
        return num * fact(num - 1)
print("5!=",fact(5))

6、统计1到100 之和。

# 题目:统计1100 之和。
sum = 0
for i in range(1, 101):
    sum += i
print("1-100的和为: ",sum)

7、文本进度条

import time
scale =50
print("执行开始".center(scale//2,"-"))#.center在两侧增加“-”
start = time.perf_counter() #计时
for i in range(scale + 1):
    a = '*' * i
    b = '.' * (scale - i)
    c = (i/scale)*100
    dur = time.perf_counter() - start#消耗的时间
    print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end="")#\r输出字符串之前光标回到行首,‘,end=""’是指不换行
    time.sleep(0.1)
print("\n"+"执行结束".center(scale//2,"-"))

需要在命令行运行
在这里插入图片描述

8、中文文本词频统计

import jieba
txt = open("Chinese.txt","r",encoding="utf-8").read()
words = jieba.lcut(txt)
counts = {}
for word in words:
    if len(word) ==1:
        continue
    else:
        counts[word] = counts.get(word,0)+1
items = list(counts.items())
items.sort(key = lambda  x:x[1],reverse=True)
for i in range(15):
    word,count = items[i]
    print("{0:<10}{1:>5}".format(word,count))

9、英文文本词频统计

def getText():
    txt = open('English.txt',"r").read()
    txt = txt.lower()#小写
    for ch in '|"#$%&()*+,./:;<=>?@[\\]^_{|~':
        txt = txt.replace(ch," ")#把特殊符号替换为空格
    return txt
hamletTxt = getText()
words = hamletTxt.split()#每个单词是空格分开的 ,列表返回
counts = {}#空字典
for word in words:
    counts[word] = counts.get(word,0) +1
items = list(counts.items())
items.sort(key = lambda  x:x[1],reverse=True)
for i in range(10):
    word,count = items[i]
    print("{0:<10}{1:>5}".format(word,count))

10、温度与摄氏度的转换

temp = input("请输入带有符号的温度值:")
if temp[-1] in ['F','f']:
    C = (eval(temp[0:-1]) -32)/1.8
    print("转换后的温度是{:.2f}C".format(C))
elif temp[-1] in ['C','c']:
    F = 1.8*(eval(temp[0:-1]))+32
    print("转换后的温度是{:.2f}F".format(F))
else:
    print("输入的格式错误")
发布了33 篇原创文章 · 获赞 13 · 访问量 2757

猜你喜欢

转载自blog.csdn.net/weixin_44947339/article/details/104247557
今日推荐