练习题(格式见编辑面板)

求十万以内所有素数
a = list(range(2,100001))
for i in range(len(a)):
for j in range(2,int(a[i]**0.5)+1):
if a[i] % j == 0:
break
else:
print(a[i])

输入5个数字,打印每个数字的位数,将这些数字排序打印,要求升序打印
a = []
for i in range(5):
b = input(’>>’)
a.append(b)
a.sort()
print(len(a[i]))
print(a)

改题:输入若干数字,用冒泡法排序
a = []
while True:
b = input(’>>’)
if b == ‘quit’:
break
else:
a.append(b)
for i in range(len(a)): #i从0-5取值
for j in range(len(a)-i-1):
if a[j] > a[j+1]:
w = a[j]
a[j] = a[j+1]
a[j+1] = w
print(a)

输入一个数字,判断是几位数,依次打印每一位数字及其重复的次数

斐波那契数列,打印100以内的项,求第101项

a = 0
b = 1
while True:
c = a + b
if c >100 :
break
a = b
b = c
print©

第101项自己的解法:

a = 1
b = 1
list = [a,b]
for i in range(100):
c = list[i] + list[i+1]
list.append©
print(list[100])

老师的解法:

a = 1
b = 2
print(‘index={},fib={}’.format(0,0))
print(‘index={},fib={}’.format(1,a))
print(‘index={},fib={}’.format(2,b))
index = 2

while True:
c = a + b
index += 1
print(‘index={},fib={}’.format(index,c))
if index == 101:
break
a = b
b = c

打菱形
*






初步解法:

for i in range(1,8):
if i < 5:
print(’{: ^7}’.format(’(2i-1)))
else:
print(’{: ^7}’.format(’
’ * (15-2 * i)))

普遍算法:

n=中间最长的的个数(奇数)
n = int(input(’>>>’))
e = int(n // 2)
for i in range(-e,n-e):
print(’{: ^{}}’.format(’
(n-2abs(i)),n))
同样效果:## print(’ ‘(3-abs(i))+’(2abs(i)+1))
对顶三角形
n = int(input(’>>>’))
e = int(n // 2)
for i in range(-e,n-e):
print(’{: ^{}}’.format(’(2*abs(i)+1),n))

九九乘法表(不同形式的输出,取决于第二个for循环中range的写法)

核心代码:
for i in range(1,10):
for j in range(1,10):
if i >= j:
print(str(j)+’’+str(i)+’=’+str(ij),end=’ ')
print()

1、首先注意结尾要end=‘ ’,确保不换行,因为print默认换行

2、开始此处错误为print(j,’’,i,’=’,ij,end=’ '),由于逗号(,)打印
出来就是空格,会出现1 * 2 = 2这样的结果,不如用字符串连接美观,字符串的连接用加号(+),加号两边加空格不显示。

解法:
for i in range(1,10):
for j in range(1,i):
if i >= j:
print(str(j)+’’+str(i)+’=’+str(ij),end=’ ')
print()

字符串format做法:
for i in range(1,10):
for j in range(1,i+1):
print(’{0}*{1}={2}’.format(j, i, i * j),end=’ ')
print()

对齐

制表符代码(\t)对齐:目前默认设置为\tab 占用4个格,只要输出不满4个格,按tab就会用空格补全到4个格
for i in range(1,10):
for j in range(1,i+1):
print(str(j) + ‘’ + str(i) + ‘=’ + str(ij),end=’\t’)
print()

字符串format对齐:

(一)
for i in range(1,10):
line = ‘’
for j in range(1,i+1):
line += ‘{0}{1}={2:❤️}’.format(j, i, i * j)
print(line)
(二)
for i in range(1,10):
line = ‘’
for j in range(1,i+1):
if j == 1: #此处的判断属于进一步对齐
line += '{}
{}={:<2}’.format(j,i,ij)
else:
line += '{}
{}={:❤️}’.format(j,i,i*j)
print(line)
备注:老师用定义line,目的是可以将line在后面继续使用,不局限这个小程序

扩展:

for i in range(1,10):
print(’ ‘8(i-1),end=’’) #在每列输出前打印相应空格
for j in range(i,10):
print(str(i) + ‘’ + str(j) + ‘=’ + str(ij),end=’\t’)
print()

字符串format做法:
for i in range(1,10):
line = ‘’
print(’ ’ * 7 * (i - 1), end=’’)
for j in range(i, 10):
line += ‘{0}*{1}={2:❤️}’.format(i, j, i * j)
print(line)

输入一个数字,打印每一位数字及其重复的次数:

a = input(’>>>’)
b = len(a)
q = int(a)
list = []
for i in range(b):
w =10**(b-i-1)
c = q // w
q = q % w
list.append©
for j in range(b):
print(‘第’,j+1,‘位数字是’,list[j],’ 重复’,list.count(list[j]),‘次’)

依次接收用户输入的3个数,排序然后打印:①转换int后,判断大小排序。使用分支结构完成②使用max函数③使用列表的sort方法④冒泡法

方法1:
x = input(’>>’)
y = input(’>>’)
z = input(’>>’)
a = int(x)
b = int(y)
c = int(z)
if a > b:
if b > c:
print(a,b,c)
elif a > c:
print(a,c,b)
else:
print(c,a,b)
else:
if a > c:
print(b,a,c)
elif c > b:
print(c,b,a)
else:
print(b,c,a)

方法2:

a = input(’>>’)
b = input(’>>’)
c = input(’>>’)
print(max(a,b,c),min(a,b,c))

方法3:

list = []
for i in range(3):
a = input(’>>’)
list.append(a)
list.sort()
print(list)

方法4:

list = []
for i in range(3):
a = input(’>>’)
list.append(a)
for j in range(2):
for k in range(2-j):
if list[k] > list[k+1]:
b = list[k+1]
list[k+1] = list[k]
list[k] = b
print(list)

杨辉三角

给一个半径,求圆的面积和周长。圆周率3.14
r = int(input(‘半径:’))
print(‘area’,’=’,str(3.14r**2))
print(‘l’,’=’,str(2
3.14*r))

语法基础不牢:
在不对area l定义的前提下,要加’area’ ‘l’
字符串和整型在一起运算,提前定义字符串r

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值