1 .读程序:
numbers = 1
for i in range(0,20):
numbers *= 2
print(numbers)
总结:计算方法:i 取0~(20-1):
numbers = 1 i=0 numbers=2, # 2^(i+1)
numbers = 2 i=1 numbers=4, #2^(i+1)
numbers = 8 i=2 numbers=16, #2^(i+1)
numbers =16 i =3 numbers =32 #2(i+1)
所以print(sumbers) = 2(20-1+1)=220
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)
总结:summation=0,num=1,summation=1.
summation=1,num=2,sumation=2.
num= 1~100
意思是:统计被能被3或者7整除,但不能同时被3和7整除的数的个数。
2.编程实现(for和while各写一遍):
1.求1到100之间所有的数的和,平均值;
for:
sum = 0
for x in range(1,101):
sum+=x
print('1~100的和是;%d,平均数是:%.2f' %(sum,sum/100))
while:
a =1
b=0
while a <=100:
b +=a
a +=1
print('0~100数字之间的和是:%d,平均数是:%.2f'%(b,b/100))
2.计算1~100之间能被3整除的数的和:
for:
第一种解法:
a = 1
b = 0
for a in range(101):
if a%3 == 0:
b += a
print(b)
第二种解法:
for x in range(3,101,3):
sum1 += x
print(sum1)
while:
b = 0
a = 1
while a <= 100:
if a % 3 == 0:
b += a
a += 1
print(b)
3.计算1~100之间不能被7整除的数的和:
for:
b = 0
for a in range(101):
if a % 7 != 0:
b += a
print(b)
while:
while a <= 100:
if a%7 !=0:
b += a
a += 1
print(b)
-
稍微困难的:
1.求斐波那契数列中第n个数的值:1,1,2,3,5,8,13,21,34.....:
解释:
当 n =1和 n=2时,第n个数等于1
当 n=2,第n个数 = 第n-1个数 + 第n-2个数
1,1,2,3,5,8
a1 =1
a2 = 1
c = a1 + a2
a1 = a2
a2 = c
n = 8
if n == 1 or n == 2:
current = 1 #当前的
p1 = 1 # 前一个
p2 = 1 #前两个
# 求出第n个和第n个前面的所有的数
for idex in range(3,n+1):#当前的等于前一个+前两个
current = p1 + p2
# 挪动 p1和p2
p1 = p2
p2 = current
print(current)
2.判断101~200之间有多少个素数,并输出所有素数。判断素数的方法:用一个数分别除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数:
解释:素数或质数:除了1和它本身,不能被其他的数整除的数。
- 方法1:
count = 0
for x in range(101,201): #j将101到200之间的数全部取出来。
for y in range(2,x): #将2~x-1取出来
if x % y ==0: #(判断2~x-1区间中是否能够被x整除,只要有一个余数是0,就说明x不是素数)
break
else:
count += 1
print('x,是素数')
print('101~200总共有%d个素数'%(count))
- 方法2:
for x in range(101,201): #导出101~200的所有数
count = 0 #声明一个数
for y in range(2,x): #导出2~x-1的所有数
if x % y == 0: #判断2~x-1是否能被x整除
count += 1 #能被整除的进入终止循环
break # 终止标识
if count == 0: # 判断和开始变量是否相等
print(x,'是素数')
print('101~200之间素数一共有%d位'%count)
3.打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153 = 1^3 + 5^3 + 3^3.
方法:
for x in range(100,1000): # 先导出所有三位数
bai_wei = x//100 #找出百位数
shi_wei = x//10%10 #找出十位数
ge_wei = x//10 #找出个位数
if x = bai_wei**3 + shi_wei**3 + ge_wei**3; #判断其是否相等
print('%d是水仙花数'%x) #得出结果
- 4.给一个正整数,要求:1.求它是几位数。2.逆序打印出各位数字:
import random #引入随机数
number = random.randint(100,100000) #随机数在100~100000之间
ste = str(number) # 数字转化为字符串
print(ste) #输出字符串
print('数字%d是%d位数‘%(number,len(ste))) # 字符串的个数就是数字的位数
print(ste[-1::-1]) #逆序打出各位数字
扩展:1.逆向一位一位打印:
length = len(num_str) #字符串的位数
for index in range(0,length): #引入一个index取值0~长度之间
print(num_str[length-1-index] # 逆向打印字符串每一位
2.逆向打印数字 中间用,隔开
print(number) # 输出随机数
index = -1 # 倒数第一位
while index >= -length: #取值倒数第一到倒数最后一位
print(num_str[index],end',') #逆向打印字符串的每一位,中间用,隔开
index -= 1 #每导入一位,下次倒数位数加一位。
网友评论