1.读程序
numbers=1
for i in range(0,20):
numbers*=2
print(numbers)
2^20
2.读程序
summation=0
num=1
while num<=100:
if (num%3==0 or num%7==0) and num%21!=0:
summation += 1
num+=1
print(summation)
找出 1-100之间能整除3或7但是又不能被这两者整除的数 的个数
3.求1到100之间所有数的和、平均值
# for
sum1 = 0
mean1 = 0
for n in range(1,101):
sum1 += n
mean1 = sum1/100
print('for: 1-100之间所有数的和:%d,平均值:%d' % (sum1,mean1))
# while
sum11 = 0
mean11 = 0
numa = 1
while numa <= 100:
sum11 += numa
numa +=1
mean11 = sum11/100
print('while: 1-100之间所有数的和:%d,平均值:%.2f' % (sum11,mean11))
结果:
for: 1-100之间所有数的和:5050,平均值:50.50
while: 1-100之间所有数的和:5050,平均值:50.50
4.计算1-100之间能3整除的数的和
# for
sum2 = 0
for n in range(1,101):
if not n%3:
sum2 += n
print('for: 1-100之间能3整除的数的和:%d' % sum2)
# while
sum21 = 0
num21 = 1
while num21 <= 100:
if not num21%3:
sum21 += num21
num21 += 1
print('while: 1-100之间能3整除的数的和:%d' % sum21)
结果:
for: 1-100之间能3整除的数的和:1683
while: 1-100之间能3整除的数的和:1683
5.计算1-100之间不能被7整除的数的和
# for
sum3 = 0
for n in range(1,101):
if n%7:
sum3 += n
print('for: 1-100之间不能被7整除的数的和:%d' % sum3)
# while
sum31 = 0
num31 = 1
while num31 <= 100:
if num31%7:
sum31 += num31
num31 += 1
print('while: 1-100之间不能被7整除的数的和:%d' % sum31)
结果:
for: 1-100之间不能被7整除的数的和:4315
while: 1-100之间不能被7整除的数的和:4315
1.求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34......
def fibonacci(n):
fibonacci_list=[]
if n == 1:
fibonacci_list = [1]
elif n == 2:
fibonacci_list = [1,1]
else:
fibonacci_list = [1,1]
for num in range(3,n+1):
fibonacci_list.append(fibonacci_list[num-2]+fibonacci_list[num-3])
print('斐波那契数列为:%s, 第%d个数的值: %d' % (str(fibonacci_list),n,fibonacci_list[n-1]))
if __name__ == '__main__':
fibonacci(8)
结果:
斐波那契数列为:[1, 1, 2, 3, 5, 8, 13, 21], 第8个数的值: 21
2.判断101-200之间有多少个素数,并输出所有素数。判断素数的方法:用一个数分别除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数
def prime_number(start,end):
prime_number_count = []
for num in range(start,end+1):
mark = 1 # mark = 1 是素数
for n in range(2,num):
if not num%n:
mark = 0
break
if mark:
prime_number_count.append(num)
print('%d-%d之间的素数:%s, 共%d 个'%(start,end,str(prime_number_count),len(prime_number_count)))
if __name__ == '__main__':
prime_number(101,200)
结果:
101-200之间的素数:[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199], 共21 个
3.打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153 = 1^3 + 5^3 + 3^3
def Narcissistic_number():
Narcissistic_number_list = []
for num in range(100,1000):
one = num % 10 #个位
decade = num // 10 % 10 #十位
hundred = num // 100 #百位
num_s = one**3 + decade**3 + hundred**3
if num_s == num:
Narcissistic_number_list.append(num_s)
print('所有水仙花数:%s'% Narcissistic_number_list )
if __name__ == '__main__':
Narcissistic_number()
结果:
所有水仙花数:[153, 370, 371, 407]
4.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的第20个分数分子:上一个分数的分子加分母 分母: 上一个分数的分子 fz = 2 fm = 1 fz+fm / fz
def fractional_sequence(n):
fz = 2
fm = 1
fractional = 0
fractional_list = [2]
for num in range(2,n+1):
fractional = (fz + fm)/fz
fractional_list.append(fractional)
(fz, fm) = (fz+fm, fz)
print('分数序列:%s, 第%d个分数的值: %s'%(fractional_list,n,fractional_list[-1]))
if __name__ == '__main__':
fractional_sequence(20) # n > 1
结果:
分数序列:[2, 1.5, 1.6666666666666667, 1.6, 1.625, 1.6153846153846154, 1.619047619047619, 1.6176470588235294, 1.6181818181818182, 1.6179775280898876, 1.6180555555555556, 1.6180257510729614, 1.6180371352785146, 1.618032786885246, 1.618034447821682, 1.6180338134001253, 1.618034055727554, 1.6180339631667064, 1.6180339985218033, 1.618033985017358], 第20个分数的值: 1.618033985017358
5.给一个正整数,要求:1、求它是几位数 2.逆序打印出各位数字
def positive_integer(num):
num_str = str(num)
num_list = list(num_str)
print('正整数是%d位数, 逆序打印: %s 或 %s' % (len(num_str),num_list[::-1],num_str[::-1]))
if __name__ == '__main__':
positive_integer(2589)
结果:
正整数是4位数, 逆序打印: ['9', '8', '5', '2'] 或 9852
网友评论