第一章
1.输出10个10以内的随机整数
import random
print('输出10个10以内的随机整数:')
for i in range(10):
print(random.randrange(10),end=' ')
2.计算输入整数的阶乘
def fac(n):
if n==0:
return 1
else:
return n*fac(n-1)
a=eval(input('请输入一个整数:'))
print(a,'!=',fac(a))
3.输出九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print('%s*%s=%-2s'%(i,j,i*j),end='')
print()
第二章
1.编写程序将数据输出到文件outtest2-6.txt,完成输出后,文件中的内容如下。
Python
Java
C++
file_handle=open('outtest.txt',mode='w')
file_handle.writelines(['Python\n','Java\n','C++\n'])
file_handle.close()
2.编程输入任意数量的数字,输出其和,示例运行结果如下。
请输入多个数据:1,2,3,4
和= 10
提示:sum()函数可计算序列对象中所有元素的和,例如,sum([1,2,3])。
list1=eval(input("请输入多个数据"))
print("和=",sum(list1))
第三章
1.任意两个整数a和b,输出a除以b的商和余数,示例运行结果如下。
请输入两个整数:23,4
23除以4的商:5
23除以4的余数:3
a,b=eval(input("请输入两个整数:"))
print("{}除以{}的商".format(a,b),a//b)
print("{}除以{}的余数".format(a,b),a%b)
2.输入一个不大于255的正整数,输出其8位二进制、八进制和十六进制编码(要求使用字符串的format()方法)。示例运行结果如下。
请输入一个不大于255的正整数:23
二进制:00010111
八进制:00000027
十六进制:00000017
a=eval(input("请输入一个不大于255的正整数:"))
print("二进制:{0:08b}".format(a))
print("八进制:{0:08o}".format(a))
print("十六进制:{0:08X}".format(a))
3.求解一元二次方程ax2+bx+c=0,系数a、b、c通过键盘输入(保留2位小数),示例运行结果如下。
示例1:
请输入方程的系数a,b,c:1,-1,-6
方程的解x1=3.00
方程的解x2=-2.00
示例2:
请输入方程的系数a,b,c:1,2,1
方程的解x1=x2=-1.00
示例3:
请输入方程的系数a,b,c:1,2,4
方程的解x1=-1.00+1.73j
方程的解x2=-1.00-1.73j
import math
a,b,c=eval(input('请输入方程的系数a,b,c:'))
d=b*b-4*a*c
if d>0:
x1=(-b+math.sqrt(d))/(2*a)
x2=(-b-math.sqrt(d))/(2*a)
print('方程的解x1=%.2f'%x1)
print('方程的解x2=%.2f'%x2)
if d==0:
print('方程的解x1=x2=%.2f'%(-b/(2*a)))
if d<0:
x1=-b/(2*a)
x2=math.sqrt(-d)/(2*a)
print('方程的解x1=%.2f+%.2fj'%(x1,x2))
print('方程的解x2=%.2f-%.2fj'%(x1,x2))
4.输入一个字符串,找出其中最大的字符,输出该字符及其在字符串中的位置,示例运行结果如下。
请输入一串字符:8wyekjndfiq
最大字符为:y,其位置为:2
a=input('请输入一串字符:')
c=max(a)
print('最大字符为:%c,其位置为:%d'%(c,a.index(c)))
#或者
#print('最大字符为:{0},其位置为:{1}'.format(c,a.index(c)))
5.输出文本进度条。运行效果如下:
(使用Jupyter Notebook运行)
import time
scale=50
print("\n"+"执行开始".center(scale//2,'-'))
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{:.2f}s[{}{:^.0f} %>{}]".format(dur,a,c,b),end='')
time.sleep(0.1)
print("\n"+"执行结束".center(scale//2,'-'))
第四章
1.任意输入两个正整数,计算其最大公约数和最小公倍数。
a,b = eval(input("请输入两个整数:"))
x,y=a,b
a=max(x,y)
b=min(x,y)
d=a%b
while d!=0:
a,b,d = b,d ,a%b
print("{}, {}的最大公约数是 {}".format(x,y,b))
print("{}, {}的最小公倍数是 {}".format(x,y,x*y//b))
2.输出所有的“水仙花”数。“水仙花”数是一个三位数,它的各位数字的立方和等于该数。例如,13+53+33=153,153是“水仙花”数。
for n in range(100,1000):
a=n//100 #百位数
b=n//10%10 #十位数
c=n%10 #个位数
if a**3 + b**3 + c**3 == n:
print(n)