01-homework
練習: 程序的執(zhí)行時從上往下執(zhí)行 解析如下:
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.統(tǒng)計1-100中能被3整除或者7整除,但是不能被21整除的數(shù)的個數(shù)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之間所有數(shù)的和爆土、平均值
使用for循環(huán):
sum1 = 0
fox x in range(1,101):
sum1 = sum1 + x
print (sum1)
print (sum1/100)
使用while循環(huán):
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 # 前面第一個數(shù)
n2 = 2 # 前面第二個數(shù)
num = 0 # 當前數(shù)值大小
n = 10 # 表示當前要求的第幾個數(shù)
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之間又多少個素數(shù),并輸出所有的素數(shù)诸蚕。(質數(shù)步势、素數(shù):只能被或者他本身整除)判斷素數(shù)的方法:用一個數(shù)分別除2到sqrt(這個數(shù)),如果能被整除背犯,則表明次數(shù)不是素數(shù)坏瘩,反之是素數(shù)第一個循環(huán)將101-200中的所有的數(shù)據去處理
num = 0
for x in range(101,201):
# x = (101~200)
# 拿到X后,判斷2到x-1中有沒有一個數(shù)可以被被x整除漠魏。如果2到x-1中沒有一個能被x整除
# 就說明x是素數(shù)倔矾。只要有一個可以被x整除,x就不是素數(shù)
count = 0 # 統(tǒng)計2到x-1中能夠被x整除的數(shù)的個數(shù)
for y in range(2,x):
if x % y == 0:
print (x,'不是素數(shù)')
count += 1
if count == 0:
print (x,'是素數(shù)')
num += 1
print (num)
02-break和continue
break是一個讓循環(huán)提交結速的關鍵字
-
如果在for循環(huán)或者while循環(huán)中遇到break蛉幸,那么循環(huán)就在break的位置直接結束。結束后程序執(zhí)行循環(huán)后邊的代碼
練習:找到1000-9999中的第一個能夠被13整除的數(shù)(打哟曰蕖)for x in range(1000,10000): if x % 13 == 0: print ('找到了:',x) break print ('循環(huán)結束后') for x in range(1,100): if x == 50: break # 在這個地方結束循環(huán)奕纫,直接跳出循環(huán)執(zhí)行后面的語句 print (x) # 1 2 3 4....49
用while循環(huán)實現(xiàn):不斷的讓用戶去輸入數(shù)字,直到用戶輸入的數(shù)字是0為止
-
input函數(shù):程序執(zhí)行到input函數(shù)的時候烫沙,程序就會停下來匹层,等待用戶從鍵盤輸入并且回車結束,然后才會往下寫
sum1 = 0 while True: num = int(input('請輸入數(shù)字:')) #獲取鍵盤輸入的內容锌蓄,并且轉換成int類型 sum1 += num #將當次輸入的數(shù)字加起來 if num == 0: #判斷輸入的數(shù)字是否是0升筏,如果是就讓循環(huán)結束 break print (num) print (sum1)
注意:break只能寫在循環(huán)中
03-猜數(shù)字
- for循環(huán)和while循環(huán)的選擇:
- for循環(huán) 的特點:次數(shù)確定,可以在序列中取數(shù)據
- while:可以解決循環(huán)次數(shù)不確定的(while True + break)
練習:隨機生成一個整數(shù)瘸爽。用戶輸入數(shù)字您访。如果用戶輸入的數(shù)字大于隨機數(shù)就顯示:‘大了’;如果用戶輸入的數(shù)小于隨機數(shù)就提示'小了'剪决。直達哦用戶輸入的數(shù)和隨機數(shù)一樣游戲就結速灵汪。
生產隨機數(shù):random模塊是Python內置的,用來產生隨機數(shù)的模塊柑潦,里面提供了很多產生隨機數(shù)的函數(shù)享言;
randint(m,n):產生一個m到n的隨機整數(shù)
import random
num = random.randing(0,100)
count = 0
while True:
count +=1
inputValue = int(input('請輸入一個數(shù):'))
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:結束當次循環(huán)渗鬼,進入下次循環(huán)
for x in range(1,10):
print ('=',end='')
continue #遇到continue就不再執(zhí)行循環(huán)體后面的內容览露,直接進入下一次循環(huán)的判斷
print (x)
練習:1.求1到100中所有的奇數(shù)的和
sum1 = 0
for x in range(1,101):
if x % 2 == 0:
continue
sum1 += x
print (sum1)
2.統(tǒng)計輸入的數(shù)字中偶數(shù)的個數(shù)。如果輸入0譬胎,就結速差牛。(必須使用continue)
flag = True
count = 0
whiile flag:
#輸入數(shù)據
inputvalue = int(input('>>>'))
#判斷是否是奇數(shù)
if inputvalue % 2 == 1:
continue
if inputvalue == 0
flag = False
count += 1
print ('偶數(shù)的個數(shù):',count)
05-else
-
Python中循環(huán)語句后面可以加else語句命锄。這個else語句會在循環(huán)后只需
格式:for 變量 in 系列 循環(huán)體 else: 循環(huán)結束后會只需的語句塊
練習:1.求123....10的和
sum1 = 1 #sum1的值不能大于10000
for x in range(1,11):
sum1 *= x
else:
print (sum1)
-
注意:如果在循環(huán)中使用break,那么else語句不會只需6嗫贰(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-多重循環(huán)
-
在循環(huán)體里面可以有其循環(huán)語句
for 變量 in 序列: for 變量1 in 系列2: 循環(huán)體2 其他的循環(huán)語句 for 變量 in 序列: while 條件語句: 循環(huán)體2 其他的循環(huán)語句2 while 條件語句1: 其他的循環(huán)語句 while條件語句2: 循環(huán)體2 其他的循環(huán)語句2
練習:如果n=5累舷,打印
1
12
123
1234
12345
...
n = int(input('請輸入要打印的行數(shù) :'))
for x in range(1,n+1):
for y in range(1,x+1): #y控制獲取當前行里的所有數(shù)值
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 ()