1. 程式人生 > >002-小白學python-運算符/判斷/循環

002-小白學python-運算符/判斷/循環

指數 布爾 合數 class 字符 == 賦值運算 遊戲 個數字

目錄

  • 運算符/判斷/循環
    • 算術運算符
    • 賦值運算符
    • 數據類型轉換
      • 字符串轉換為數字類型
      • 字符串類型轉換為浮點類型
      • 轉換為字符串
    • if 判斷
      • 單個if
      • if-else
      • elif
      • if嵌套
    • 比較運算符
    • 邏輯運算符
      • 操作對象表達式
      • 操作對象至少一個是值(會調用bool)
    • while循環
      • while True
      • 一般情況下都需要終止條件
      • 計算1-100的和
    • break continue
  • while 嵌套
    • 猜拳
    • 測BIM
    • 輸入反饋
    • 過七遊戲

運算符/判斷/循環

算術運算符

  1. +
  2. -
  3. *
  4. /
  5. // 整除(註意負數向小取整)
  6. % 余數
print(1+2)
print(10-5)
print(3*5)
print(6/3)
print(6.0/3)
print(6/4)
print(-6/4)
print(-6//4) # 負數向小取整
print(10%3)

賦值運算符

遇到賦值運算符,先看右邊,在看左邊

  1. =
    單變量賦值
    多變量賦值
  2. 復合賦值運算符
    • +=
    • -=
    • *=
    • /=
    • //=
    • %==
name = ‘mike‘
age, length = 24, 18
print(name)
print(age, length)
num = 10
print(num)
num += 1
print(num)
num -= 2
print(num)
num *= 2
print(num)
num /= 2
print(num)

數據類型轉換

字符串轉換為數字類型

int() 字符串必須嚴格符合數字類型格式
~~~python
num1 = ‘100‘
num2 = ‘200‘
print(int(num1) + int(num2))

~~~

字符串類型轉換為浮點類型

float() 字符串必須嚴格符合數字浮點類型類型格式
~python
f = ‘1.23‘
print(float(f))
~

轉換為字符串

str()
~python
b = True
a = 100
print(str(a))
print(str(b))
~

if 判斷

單個if

條件判斷執行代碼
if condition:
pass
1. condition
* 比較運算
* 邏輯運算
* 值
* 或者組合的運算
~python
age = 18
if age > 16:
print(‘RNG牛逼‘)
~

if-else

條件分支
if condition:
? pass
else:
? pass

num = 15
if num > 20:
    print(‘大於20‘)
else:
    print(‘小於20‘)

elif

多條件分支, 只需要滿足一個,其他的不會執行
~python
score = 80
if 90 <= score <= 100 : # 推薦語法
print(‘A‘)
elif score >= 80 and score < 90:
print(‘B‘)
elif score >= 70 and score < 80:
print(‘C‘)
elif score >= 60 and score < 70:
print(‘D‘)
else:
print(‘不及格‘)
~

if嵌套

多層條件
~python
danger = 0 # 沒有危險
ticket = 1
if not danger and ticket:
print(‘可以進站‘)
if not danger:
print(‘可以進站‘)
if ticket:
print(‘可以上車‘)
else:
print(‘不可以上車‘)
else:
print(‘不可以進站‘)
~

比較運算符

得出的結果就是布爾值

  1. ==
  2. !=
  3. >
  4. =

  5. <
  6. <=
print(1 == 1)
print(‘name‘ == ‘name‘)
print(5 > 4)
print(3 != 2)
print(3 >= 3)
print(5 <= 7)
print(4 > 3)
print(6 != 6)

邏輯運算符

操作對象表達式

1. and     同真為真
2. or      有一個為真就可以
3. not      取反

優先級 () > not > and > or

操作對象至少一個是值(會調用bool)

  1. and 遇到假就停,返回該原值
  2. or 遇到真就停,返回該原值
  3. not 取反
home = 2
car = 3

if car >= 3 and home > 1:
    print(‘牛逼‘)
else:
    print(‘還得努力‘)

num = 10
if num > 5 and num < 20:
    print(‘大小合適‘)

if not (2 > 3):
    print(‘666666‘)
    
love = 1
if car > 2 and home >= 1 or love == 1:
    print(‘陳獨秀‘)
else:
    print(‘李時珍皮‘)
    
num = int(input(‘>>>輸入數字‘))
if num and  num > 10:
    print(‘ok‘)

while循環

條件滿足,執行代碼,然後去判斷條件,看是否滿足,滿足則執行,否則跳出循環

while condition:
? pass

while True

死循環,通常看情況使用

一般情況下都需要終止條件

count = 0
while count < 10:
    print(f‘牛逼{count}‘)
    count += 1

計算1-100的和

num = 1
sum_ = 0
while num < 101:
    sum_ += num
    num += 1
print(sum_)

s = 0
i = 1
while i < 101:
    if i % 2 == 0:
        s += i
    i += 1
print(s)

# 計算 1-2+3-4+5-6,。。。+99-100
sum = 0
for i in range(1, 101):
    if i % 2 == 0:
        sum -= i
    else:
        sum += i
print(sum)

break continue

循環中使用
1. break 立即終止循環執行
2. continue 立即跳出當前循環,然後判斷條件進入下一次循環
3. 只能作用於最近的循環
4. 一般情況下與判斷結合使用

i = 1
while i < 10:
    print(f‘i:{i}‘)
    if i == 5:
        break
    i += 1

c = 1
while c <= 10:
    if c == 5:
        c += 1
        continue
    print(f‘c:{c}‘)
    c += 1

while 嵌套

while condition1:
? pass
? while condition2:
? pass

# 打星星
i = 1
while i < 6:
    j = 1
    while j <= i:
        print(‘*‘, end=‘ ‘)
        j += 1
    print(‘‘)
    i += 1
# 99
m = 1
while m < 10:
    n = 1
    while n <= m:
        print(f‘{n} * {m} = {m * n}‘, end=‘(-_-)‘)
        n += 1
    print(‘‘)
    m += 1
## 99
j = 9
while j > 0:
    k = 9
    while j <= k:
        print(f‘{k} * {j} = {j * k}‘, end=‘(-_-)‘)
        k -= 1
    print(‘‘)
    j -= 1

## 99
for i in range(9, 0, -1):
    for j in range(9, 0, -1):
        if j <= i:
            print(‘%d * %d = %d‘ % (j, i, i * j), end=‘ ‘)
    print(‘\n‘)

猜拳

import random
# 得到用戶數據
# 分析用戶數據
# 操作用戶數據
# 進行判斷,循環
# 得出結果
dic = {
    0: ‘剪刀‘,
    1: ‘石頭‘,
    2: ‘布‘,
}
count = 5
while count <= 5:
    player = int(input(‘剪刀(0),石頭(1),布(2)>>>:‘))
    if player not in (0, 1, 2):
        count -= 1
        if count == 0:
            flag = input(‘還想玩嗎?Y/N‘)
            if flag.upper().strip() == ‘Y‘:
                count = 5
            else:
                break
        print(f‘請輸入按照要求輸入012,還有{count}次機會‘)
        continue
    value = random.randint(0, 2)
    print(f‘player--{dic[player]}‘)
    print(f‘value---{dic[value]}‘)
    if player == 0 and value == 2 or player == 1 and value == 0 or player == 2 and value == 1:
        print(‘you win‘)
        break
    elif player == value:
        print(‘peace‘)
    else:
        print(‘down‘)
    count -= 1
    print(f‘還有{count}次機會‘)
    if count == 0:
        flag = input(‘還想玩嗎?Y/N‘)
        if flag.upper().strip() == ‘Y‘:
            count = 5
        else:
            break

測BIM

# 判斷BIM指數:
# 1、輸入一個人的身高(m)和體重(kg)(分兩次輸入),根據BMI公式(體重除以身高的平方)計算他的BMI指數,
# 判斷這個指數輸出對應的肥胖程度(過輕、正常、過重、肥胖、嚴重肥胖)
# 例如:一個52公斤的人,身高是155cm,則BMI為 :
# 52(kg)/1.552**2(cm)= 21.6
# BMI指數:
# 低於18.5:過輕
# 18.5-25:正常
# 25-28:過重
# 28-32:肥胖
# 高於32:嚴重肥胖
while True:
    high = input(‘輸入身高(m)>>>:‘)
    weight = input(‘輸入體重(kg)>>>:‘)
    BIM = int(weight) / (float(high) ** 2)
    if high and weight:
        if BIM < 18.5:
            print(‘過輕‘)
        elif 18.5 <= BIM < 25:
            print(‘正常‘)
        elif 25 <= BIM < 28:
            print(‘過重‘)
        elif 28 <= BIM < 32:
            print(‘肥胖‘)
        elif BIM >= 32:
            print(‘嚴重肥胖‘)
    flag = input(‘是否繼續測量(y/n)>>>‘)
    if flag.strip().upper() == ‘N‘:
        break

輸入反饋

# 編寫代碼,1-7七個數字,分別代表周一到周日,如果輸入的數字是6或7,輸出“周末”,
# 如果輸入的數字是1-5,輸出“工作日”,如輸入其他數字,輸出“錯誤”。

lst = [1, 2, 3, 4, 5, 6, 7]
while True:
    info = int(input(‘>>>>>>‘))
    if info in lst:
        if info == 1:
            print(‘周一‘)
        elif info == 2:
            print(‘周二‘)
        elif info == 3:
            print(‘周三‘)
        elif info == 4:
            print(‘周四‘)
        elif info == 5:
            print(‘周五‘)
        elif info == 6 or info == 7:
            print(‘周末‘)
        flag = input(‘還要來嗎?(y/n)>>>‘)
        if flag.strip().upper() == ‘N‘:
            break
    else:
        print(‘輸入的數字不正確請重新輸入‘)

# 字典版本
dic = {
    1: ‘周一‘,
    2: ‘周二‘,
    3: ‘周三‘,
    4: ‘周四‘,
    5: ‘周五‘,
    6: ‘周末‘,
    7: ‘周末‘,
}
info = input(‘>>>>>>‘)
print(dic.get(int(info)))

過七遊戲

#設計“過7遊戲”的程序, 打印出1-100之間除了含7和7的倍數之外的所有數字。
# 方法一:
lst = (i for i in range(1, 101))
f_o = filter(lambda item: item % 7 != 0 and ‘7‘ not in str(item), lst)
for i in f_o:
    print(i)
# 方法二
# for i in range(1, 101):
#     if i % 7 != 0 and ‘7‘ not in str(i):
#         print(i)

002-小白學python-運算符/判斷/循環