day4学习总结0615
01-homework
练习: 程序的执行时从上往下执行 解析如下:
i = (0,1,2,3,4,5,6,7....19)第一次i=0 numbers = 2 ;第二次 i= 1 numbers = 22;第三次 i=2 numbers = 22*2 2^3 ...;第20次 i =19 numbers = 2^201。 求2的20次方
numbers = 1
for i in range(0,20):
numbers*=2
print (numbers)
2.统计1-100中能被3整除或者7整除,但是不能被21整除的数的个数num=(1,2,3,4,...100,101)
summation = 0
num = 1
while num <= 100:
if (num % 3 == 0 or num % 7 == 0) and num % 21 != 0: #num值能被3和7整除,但是不能被21整除
summation += 1
num += 1
print(summation)
print (num)
练习:1.求1到100之间所有数的和、平均值
使用for循环:
sum1 = 0
fox x in range(1,101):
sum1 = sum1 + x
print (sum1)
print (sum1/100)
使用while循环:
sum1 = 0
x = 1
while x <= 100:
sum1 = sum1 + x
x += 1
print (sum1)
print (sum1/100)
2.1,1,2,3,5,8,13,21,....n?
# n1=1,n2=2,n3=3
n1 = 1 # 前面第一个数
n2 = 2 # 前面第二个数
num = 0 # 当前数值大小
n = 10 # 表示当前要求的第几个数
if n == 1 or n == 2:
pirnt (1)
else:
for x in range(3,n+1):
numn = n1 + n2
n1 = n2
n2 = numn
print (numn)
2.判断101-200之间又多少个素数,并输出所有的素数。(质数、素数:只能被或者他本身整除)判断素数的方法:用一个数分别除2到sqrt(这个数),如果能被整除,则表明次数不是素数,反之是素数第一个循环将101-200中的所有的数据去处理
num = 0
for x in range(101,201):
# x = (101~200)
# 拿到X后,判断2到x-1中有没有一个数可以被被x整除。如果2到x-1中没有一个能被x整除
# 就说明x是素数。只要有一个可以被x整除,x就不是素数
count = 0 # 统计2到x-1中能够被x整除的数的个数
for y in range(2,x):
if x % y == 0:
print (x,'不是素数')
count += 1
if count == 0:
print (x,'是素数')
num += 1
print (num)
02-break和continue
break是一个让循环提交结速的关键字
-
如果在for循环或者while循环中遇到break,那么循环就在break的位置直接结束。结束后程序执行循环后边的代码
练习:找到1000-9999中的第一个能够被13整除的数(打印)for x in range(1000,10000): if x % 13 == 0: print ('找到了:',x) break print ('循环结束后') for x in range(1,100): if x == 50: break # 在这个地方结束循环,直接跳出循环执行后面的语句 print (x) # 1 2 3 4....49
-
用while循环实现:不断的让用户去输入数字,直到用户输入的数字是0为止
-
input函数:程序执行到input函数的时候,程序就会停下来,等待用户从键盘输入并且回车结束,然后才会往下写
sum1 = 0 while True: num = int(input('请输入数字:')) #获取键盘输入的内容,并且转换成int类型 sum1 += num #将当次输入的数字加起来 if num == 0: #判断输入的数字是否是0,如果是就让循环结束 break print (num) print (sum1)
-
注意:break只能写在循环中
03-猜数字
- for循环和while循环的选择:
- for循环 的特点:次数确定,可以在序列中取数据
- while:可以解决循环次数不确定的(while True + break)
练习:随机生成一个整数。用户输入数字。如果用户输入的数字大于随机数就显示:‘大了’;如果用户输入的数小于随机数就提示'小了'。直达哦用户输入的数和随机数一样游戏就结速。
生产随机数:random模块是Python内置的,用来产生随机数的模块,里面提供了很多产生随机数的函数;
randint(m,n):产生一个m到n的随机整数
import random
num = random.randing(0,100)
count = 0
while True:
count +=1
inputValue = int(input('请输入一个数:'))
if inputValue > num:
print ('大了')
elif inputVlue < num:
print ('小了')
elif inputValue == num:
print ('猜对了,没有奖励')
if count > 7:
print('猜了这么多次才中!!!')
elif count < 3:
print ('天才')
else:
print ('太差了')
break
04-continue
2.continue:结束当次循环,进入下次循环
for x in range(1,10):
print ('=',end='')
continue #遇到continue就不再执行循环体后面的内容,直接进入下一次循环的判断
print (x)
练习:1.求1到100中所有的奇数的和
sum1 = 0
for x in range(1,101):
if x % 2 == 0:
continue
sum1 += x
print (sum1)
2.统计输入的数字中偶数的个数。如果输入0,就结速。(必须使用continue)
flag = True
count = 0
whiile flag:
#输入数据
inputvalue = int(input('>>>'))
#判断是否是奇数
if inputvalue % 2 == 1:
continue
if inputvalue == 0
flag = False
count += 1
print ('偶数的个数:',count)
05-else
-
Python中循环语句后面可以加else语句。这个else语句会在循环后只需
格式:for 变量 in 系列 循环体 else: 循环结束后会只需的语句块
练习:1.求123....10的和
sum1 = 1 #sum1的值不能大于10000
for x in range(1,11):
sum1 *= x
else:
print (sum1)
-
注意:如果在循环中使用break,那么else语句不会只需!(continue不存在这个问题)
求123*4...10的和,超过10000就不显示sum1 = 1 fox x in range(1,11): if sum1 * x > 10000: # 在给sum1赋值前先判断的结果是否大于10000 break sum1 *= x # 只有在乘积不大于10000的时候才用乘积赋值 else: print (sum1,x)
06-多重循环
-
在循环体里面可以有其循环语句
for 变量 in 序列: for 变量1 in 系列2: 循环体2 其他的循环语句 for 变量 in 序列: while 条件语句: 循环体2 其他的循环语句2 while 条件语句1: 其他的循环语句 while条件语句2: 循环体2 其他的循环语句2
练习:如果n=5,打印
1
12
123
1234
12345
...
n = int(input('请输入要打印的行数 :'))
for x in range(1,n+1):
for y in range(1,x+1): #y控制获取当前行里的所有数值
print (y,end='') #一行结束换行
print ()
n = 5:
*****
****
***
**
n = 5 for x in range(1,n+1): for y in range(1,n+1): if x <= y: print ('*',end='') print ()