- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是⼀一个数字。例例如2+22+222+2222+22222(此时共有5个数相
加),⼏几个数相加有键盘控制。
e=0
f=0
a=int(input('请输入a的值:'))
number=int(input('请输入相加的次数:'))
while number>=0:
e=10**e+a
f=f+e
number-=1
print(f)
结果:请输入a的值:2
请输入相加的次数:3
2468
- 打印图形1
n = 4
@
@@
@@@
@@@@
line=0
while line<5:
tmp=line
while tmp>0:
print('*',end='')
tmp-=1
print()
line+=1
结果:
*
**
***
****
n = 5
@
@@
@@@
@@@@
@@@@@
line=0
while line<6:
tmp=line
while tmp>0:
print('*',end='')
tmp-=1
print()
line+=1
结果:
*
**
***
****
*****
- 打印图形2
n = 3
@
@@@
@@@@@
f=int(input('请输入一个数字:'))
for i in range(f):
s='*'*(1+2*i)
print(s.center(1+2*f))
结果:
请输入一个数字:3
*
***
*****
- 打印图形3
n = 3
@@@
@@
@
line=3
while line>0:
tmp=line
while tmp>0:
print('*',end='')
tmp-=1
print()
line-=1
结果:
***
**
*
- 输⼊入两个正整数m和n,求其最⼤大公约数和最⼩小公倍数。
m = input('输入 m:')
n = input('输入 n:')
count = 1
for i in range(0,int(m)):
num1 = int(m) - i
if (int(m) % num1 == 0) and (int(n) % num1 ==0):
print(' of %s and %s 的最大公约数是 %d'%(m,n,num1))
break
while True:
num2 = count*int(m)
if num2 % int(n) == 0:
print(' %s and %s 的最小公倍数是 %d'%(m,n,num2))
break
count += 1
结果:
请输入一个数:7
请输入另一个数:8
of 7 and 8 的最大公约数是 1
7 and 8 的最小公倍数是 56
- ⼀一个数如果恰好等于它的因⼦子之和,这个数就称为 "完数 "。例例如6=1+2+3.编程 找出1000以内的所有完数
list=[]
for m in range(1,1001):
sum = 0
for i in range(1,m):
if m%i==0:
sum+=i
if sum==m:
list.append(m)
print('完数是:',list)
结果:[6, 28, 496]
- 输出9*9⼝口诀
for m in range(1,10):
for n in range(1,10):
if n>m:
continue
print('%d*%d=%d' % (m,n,m*n),end=' ')
print()
结果:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
- ⼀一个5位数,判断它是不不是回⽂文数。即12321是回⽂文数,个位与万位相同,十位与千位相同。
w=input('请输入一个5位数:')
if w[::-1]==w:
print('这是一个回文数')
else:
print('这不是一个回文数')
结果:请输入一个5位数:12321
这是一个回文数
- 打印图形(菱形)
for i in range(4):
s='*'*(2*i+1)
print(s.center(8))
if s==7:
continue
m=3
while m>0:
s='*'*(2*m-1)
m-=1
print(s.center(8))
结果:
*
***
*****
*******
*****
***
*
- 输⼊入⼀行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
number1=0
number2=0
number3=0
number4=0
str1=input('请输入一串字符:')
list1=list(str1)
for i in list1:
if i==' ':
number1+=1
if 'A'<=i<='Z' and 'a'<=i<='z':
number2+=1
if '0'<=i<='9':
number3+=1
else:
number4+=1
print('空格的数量为:%d,字母的数量为:%d,数字的数量为:%d,其他字符数量为:%d'%(number1,number2,number3,number4))
结果:空格的数量为:2,字母的数量为:0,数字的数量为:3,其他字符数量为:7
列表作业
1.已知⼀个列表,求列表中⼼元素。
list1=[8,7,5,3,8]
m=len(list1)
if m==0:
print('列表里无元素!')
if m%2==0:
print('列表里有二个中心元素,中心元素为:%d,%d'%(list1[int((m/2)-1)],list1[int(m/2)]))
else:
print('列表有一个中心元素,中心元素为:%d'%(list1[int(m/2)]))
结果:5
2.已知⼀个列表,求所有元素和。
list1=[8,7,5,3,5]
sum=0
for i in list1:
if not (isinstance(i, int) or isinstance(i, float)):
break
sum+=i
print('列表元素的和为:',sum)
结果:28
3.已知一个列表,输出所有奇数下标元素。
list1=[8,7,5,3,8]
for i in range(5):
if not i%2==0:
print(list1[i],end=" ")
结果:7 3
4.已知⼀个列表,输出所有元素中,值为奇数的。
list1=[8,7,5,3,8]
for i in list1:
if not i%2==0:
print(i,end=" ")
结果:7 5 3
5.已知⼀个列表,将所有元素乘二。
list1=[8,7,5,3,8]
list1=[i*2 for i in list1]
print(list1)
结果:[16, 14, 10, 6, 16]
6.已知⼀个列表,将所有元素加到第一个元素中。
list1=[8,7,5,3,8]
for i in list1:
if i==list1[0]:
continue
m=list1[0]+i
list1[0]=m
print(list1)
结果:[31, 7, 5, 3, 8]
7.已知⼀个列表A,将奇数位置元素存到B列表中,偶数元素存到C列表中。
list1=[8,7,5,3,8]
list2=[]
list3=[]
for i in range(len(list1)):
if i%2==0:
list3.append(list1[i])
else:
list2.append(list1[i])#在if--else语句中间不能加其他语句
print(list3)
print(list2)
结果:
[8, 5, 8]
[7, 3]
8.把A列表的前5个元素复制到B列表中。
list1=[8,7,5,3,8,9,7]
list2=[]
list2=list2+list1[0:5]
print(list2)
结果:[8, 7, 5, 3, 8]
9.把1----36分别放入列表中,计算列表数组对角元素之和。6 * 6的列表
list9 = [1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36]
sum=0
for m in range(len(list9)):
if m in range(0,len(list9),7):
sum+=list9[m]
elif m in range(5,len(list9),5):
sum+=list9[m]
print(sum)
结果:222
10.有⼀个长度是10的列表,列表内有10个不重复的数字,要求按从⼤大到⼩小排序。
list1=[87,7,5,3,8,9,7,45,65,20]
list1.sort(reverse=True)
print(list1)
结果:
[87, 65, 45, 20, 9, 8, 7, 7, 5, 3]
11.有⼀个长度是10的列表,要求删除某⼀个位置的元素
list1=[87,7,5,3,8,9,7,45,65,20]
for n in range(10):
list1.pop()
print(list1)
结果:[87, 7, 5, 3, 8, 9, 7, 45, 65]
[87, 7, 5, 3, 8, 9, 7, 45]
[87, 7, 5, 3, 8, 9, 7]
[87, 7, 5, 3, 8, 9]
[87, 7, 5, 3, 8]
[87, 7, 5, 3]
[87, 7, 5]
[87, 7]
[87]
[]
12.有⼀个⻓度是10的列表,按递增排列,⽤户输⼊⼀个数,插⼊适当位置。
m=int(input('请输入一个数:'))
list1=[1,3,5,7,8,9,32,45,65,720]
for n in range(10):
if m<=list1[n]:
list1.insert(n+1,m)
break
print(list1)
结果:[1, 3, 5, 7, 8, 9, 9, 32, 45, 65, 720]
13.有一个长度是10的列表,数
组内有10个人名,要求去掉重复的
list1=['dandan','aoli','aoli','dandan','gaoya','dandan','gaoya','dandan','gaoya','gaoya']
list2=[]
for n in list1[:]:
if n not in list2:
list2.append(n)
list1=list2
del list2
print(list1)
结果:['dandan', 'aoli', 'gaoya']
14.把A列表的第三到第六位之间的元素删除。
list1=['dandan','aoli','aoli','dandan','gaoya','dandan','gaoya','dandan','gaoya','gaoya']
del list1[2:6]
print(list1)
结果:
['dandan', 'aoli', 'gaoya', 'dandan', 'gaoya', 'gaoya']
15.已知A列列表,B列列表,定义⼀一个列列表C,要求C包含A,B数组中的数据(⽆无重复值)。
list1=['dandan','aoli','aoli','dandan','gaoya','dandan','gaoya']
list2=['ok','no','fun','fun']
list3=[]
list4=list1+list2
for i in list4:
if i not in list3:
list3.append(i)
del list4
print(list3)
结果:['dandan', 'aoli', 'gaoya', 'ok', 'no', 'fun']
网友评论