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 之和。
# 题目:统计1到100 之和。
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("输入的格式错误")