運算符和編碼做業及默寫

一、判斷下列邏輯語句的True,False.

  1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6python

  2)not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6算法

二、求出下列邏輯語句的值。
  1),8 or 3 and 4 or 2 and 0 or 9 and 7 dom

  2),0 or 2 and 3 and 4 or 6 and 0 or 3 spa

三、下列列結果是什麼? code

  1)、6 or 2 > 1 blog

  2)、3 or 2 > 1 遊戲

  3)、0 or 5 < 4 ip

  4)、5 < 4 or 3 input

  5)、2 > 1 or 6 it

  6)、3 and 2 > 1
  7)、0 and 3 > 1
  8)、2 > 1 and 3
  9)、3 > 1 and 0
  10)、3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2

四、while循環語句基本結構?

五、利用while語句寫出猜⼤小的遊戲: 設定一個理想數字好比:66,讓用戶輸入數字,若是比66大,則顯示猜想的結果大了;若是比66小,則顯示猜想的結果小了;只有等於66,顯示猜想結果 正確,而後退出循環。

六、在5題的基礎上進⾏升級: 給用戶三次猜想機會,若是三次以內猜想對了,則顯示猜想正確,退出循環,若是三次以內沒有猜想正確,則自動退出循環,並顯示‘太笨了你....’。

7.使用while循環輸出123456 8910

8.求1-100的全部數的和
9.輸出 1-100 內的全部奇數

10.輸出 1-100 內的全部偶數
11.求1-2+3-4+5 ... 99的全部數的和.

12.⽤戶登錄(三次輸錯機會)且每次輸錯誤時顯示剩餘錯誤次數(提示:使用字符串格式化)

13. ⽤戶輸入一個數. 判斷這個數是不是一個質數(升級題).

14. 輸入一個廣告標語. 判斷這個廣告是否合法. 根據最新的廣告法來判斷. 廣 告法內容過多. 咱們就判斷是否包含'最', '第⼀', '稀缺', '國家級'等字樣. 若是包 含. 提示, 廣告不合法 


例如, 1. 老男孩python世界第一. ==> 不合法
  2. 今年過年不收禮啊. 收禮只收腦白金. ==> 合法

15. 輸入一個數. 判斷這個數是幾位數(用算法實現)(升級題) 


 

 

明日默寫代碼:
1. 求1-100之間全部的數的和
2. And or not的含義和特徵
3. break continue的含義. 有什麼區別

 

# Day2做業及默寫
# 一、判斷下列邏輯語句的True,False.
1) 1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6  (結果:True)
2) not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 (結果:False)
# 二、求出下列邏輯語句的值。
1),8 or 3 and 4 or 2 and 0 or 9 and 7   (結果:8)
2),0 or 2 and 3 and 4 or 6 and 0 or 3   (結果:4)
# 三、下列結果是什麼?
1)、 6 or 2 > 1  (結果:6)
2)、 3 or 2 > 1  (結果:3)
3)、 0 or 5 < 4  (結果:False)
4)、 5 < 4 or 3  (結果:3)
5)、 2 > 1 or 6  (結果:True)
6)、 3 and 2 > 1  (結果:True)
7)、 0 and 3 > 1  (結果:0)
8)、 2 > 1 and 3  (結果:3)
9)、 3 > 1 and 0  (結果:0)
10)、 3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2  (結果:2)


# 四、 while循環語句基本結構?
    while 條件語句:
        循環體

# 五、
#初級玩法
num = 66
while True:
    guess = int(input('請猜想數字:'))
    if guess > num:
        print('Too bigger')
    elif guess < num:
        print('Too smaller')

    else:
        print('you are right')
        break

#升級:隨機產生一個數字去猜想,直到猜想正確中止
from random import randint
num = randint(1,100)#隨機產生一個1-100之間的隨機整數
left = 1
right = 100
while True:
    guess = int(input('請猜想數字(%s-%s):' % (left, right)))#提示正確的範圍
    if guess > num:
        print('Too bigger')
        if right < num:
            right = guess
    elif guess < num:
        print('Too smaller')
        if left > num:
            left = guess
    else:
        print('you are right')
        break

#升級:隨機產生一個數字去猜想,猜想3次就中止
from random import randint
num = randint(1,100)#隨機產生一個1-100之間的隨機整數
left = 1
right = 100
count = 0
while count < 3:
    guess = int(input('請猜想數字(%s-%s):' % (left, right)))#提示正確的範圍
    if guess > num:
        print('Too bigger')
        if right < num:
            right = guess
    elif guess < num:
        print('Too smaller')
        if left > num:
            left = guess
    else:
        print('you are right')
        break #break 結束循環並不會執行到下面的 else
    count += 1
else:#只有當條件不成立的時候才能執行到它,第一次循環的時候條件就不成立也會執行它
    print('太笨了你....')
# 若是不使用 else 能夠這樣
if count >= 3:
    print('真笨')
else:
    print('真聰明')

# 六、
num = 66
count = 0
while count < 3:
    guess = int(input('請猜想數字:'))
    if guess > 66:
        print('Too bigger')
    elif guess < 66:
        print('Too smaller')
    else:
        print('you are right')
        break
    count += 1
else:
    print('太笨了你....')

# 7.
#方法一
count = 0
while count < 10:
    count += 1
    if count == 7:
        continue
    else:
        print(count)

#方法二
count = 1
while count <= 10:
    if count != 7:
        print(count)
    count += 1



# 8.
count = 1
sum = 0
while count <= 100:
    sum += count
    count += 1
print(sum)

# 9.
count = 1
while count <= 100:
    if count % 2 == 1:
        print(count)
    count += 1



# 10.
count = 1
while count <= 100:
    if count % 2 == 0:
        print(count)
    count += 1




# 11.
count = 1
sum = 0
while count < 100:
    if count % 2 == 1:  # 奇數加上
        sum += count
    else:
        sum -= count  # 偶數減去
    count += 1
print(sum)

# 12.
#方法一:本身作的
count = 3
while count > 0:
    count -= 1
    name = input('Name:').strip()
    password = input('Password:').strip()

    if name == 'alex' and password == 'abc':
        print('welcome...')
        break
    else:
        if count != 0:
            print('你還有%s 次輸錯機會' % count)

else:
    print('你已經輸錯三次了,沒法登陸')
#方法二:老師講的
uname = 'alex'
upsw = '123'
count = 1
while count <= 3:
    username = input('請輸入你的用戶名:').strip()
    password = input('請輸入你的密碼:').strip()
    if username == uname and password == upsw:
        print('登陸成功')
        break
    else:
        print('用戶名或密碼錯誤!')
        if 3-count > 0:
            print('你還有%s 次輸錯機會' % (3-count))  #機會用(3-count)很好
        else:
            print('你已經輸錯三次了,沒法登陸')
            break
    count += 1


# 13. 
#質數:只能被1和它自己整除的數 
# 我寫的
num = int(input('請輸入一個大於1的整數:')) if num == 1: print('1不是質數也不是合數') else: count = 2 while count < num: if num % count == 0: print('%s 不是質數' % num) break count += 1 else: print('%s 是質數' % num) #老師寫的 (並無排除1) n = int(input('請輸入一個數字:')) for i in range(2, n): # i的範圍是從2到 n-1 if n % i == 0: # 整除不是質數 print(f'{n}不是質數') break else: # 是質數的條件是遍歷2~n之間全部的除數都不能整除,而不是隻判斷一個元素,因此要注意else的位置是和for是配對的而不是和if print(f'{n}是一個質數') # 擴展: 求1~100以內的全部質數 for n in range(2, 100): # n的範圍直接從2開始取值,由於1不是質數也不是合數 for i in range(2, n): # i的範圍是從2到 n-1 if n % i == 0: break else: # 是質數 print(n) # 擴展: 求1~100以內的全部質數的和 sum = 0 for n in range(2, 100): # n的範圍直接從2開始取值,由於1不是質數也不是合數 for i in range(2, n): # i的範圍是從2到 n-1 if n % i == 0: break else: # 是質數 sum += n print(sum) # 14. ad = input('請輸入一個廣告標語:') if '' in ad or '第⼀' in ad or '稀缺' in ad or '國家級' in ad: print('廣告不合法') else: print('廣告合法') ##錯誤示範: if '' or '第⼀' or '稀缺' or '國家級' in ad:pass #這樣等價於
if '最' or '第⼀' or '稀缺' or ('國家級' in ad),結果就是'最'(由於在 or 表達式中,最左邊的'最'不爲0,並且 in 的優先級比 or 高)
if ('' or '第⼀' or '稀缺' or '國家級') in ad: pass#這樣等價於 if '最' in ad,結果就是判斷這個表達式的值 #結論:上面這個表達式不加括號的話是 in 的優先級比 or 高 # 14. #偷懶的最簡單的方法是利用 len()求長度,若是考慮負數的話要先轉化爲絕對值 num = abs(int(input('請輸入一個整數:'))) len_num = len(num) ##老師講過以後修改(這裏只能判斷整數,不能判斷小數) # 不轉化爲絕對值沒辦法判斷負數,負數地板除的結果老是帶一個負號的,不可能結果是0 num = int(input('請輸入一個整數:')) #負數沒辦法判斷,那就把負數轉化爲正數,方法:求絕對值或者負負得正 num = abs(num) #abs() 絕對值 # #負負得正 # if num <= 0: # num = -num count = 0 while True: count += 1 if num // 10 != 0: num //= 10 continue else: print('你輸入的是一個%s 位數' % count) break #老師寫的(思想相同:這道題的核心就是地板除) num = abs(int(input('請輸入一個整數:'))) count = 0 while 1: num //= 10 #num = num // 10 地板除的結果是商的整數部分 count += 1 if num == 0: break print(count) #擴展:求一個數字有多少位小數 num = input('請輸入一個小數:') # -123.345這裏不須要轉化爲絕對值了,由於下面使用的是切片,不涉及前面的負號 c = len(num[num.index('.')+1:]) # 對原數字從小數點後面一位的數字開始作切片 print(c) # 明⽇默寫代碼: # 1. 求1-100之間全部的數的和 count = 1 sum = 0 while count <= 100: sum += count count += 1 print(sum) # 2. And or not的含義和特徵 and : 而且. 左右兩端同時爲真. 結果才能是真 or : 或者. 左右兩端有一個是真. 結果就是真 not : 非. 非真既假, 非假既真 不真-> 假 不假 -># 3. break continue的含義. 有什麼區別 break: 馬上跳出循環. 打斷的意思 continue: 停⽌本次循環, 繼續執行下一次循環.
相關文章
相關標籤/搜索