數字類型內置運算,和字符內置運算

5.7自我總結

1.數字類型內置方法(省略數字類型定義,做用,基本運算)

1.數字類型定義,做用,基本運算

http://www.javashuo.com/article/p-yoqxsfnf-mb.html詳細的內容,還有些不足地方下面連接中有說明html

http://www.javashuo.com/article/p-tdeucywk-md.html補充說明python

2.無內置運算

3.一個值或者多個值

一個值git

4.有序或者無序

數字類型爲一個值,也不存在索引,因此不存在有序或者無序的這種說法工具

5.可變或不可變

a = 1
print(di(a))
8791457161872
a += 1
print(id(a))
8791457161904
他們值變了,地址也發生了變化說覺得不可變

2.字符串類型內置方法(省略數字類型定義,做用,基本運算)

1.數字類型定義,做用,基本運算

http://www.javashuo.com/article/p-yoqxsfnf-mb.html詳細的內容,還有些不足地方下面連接中有說明code

http://www.javashuo.com/article/p-tdeucywk-md.html補充說明htm

2.運算

1.必須掌握

a)按索引取值
a = 'yang'
#取其中的y
print(a[0])
y
b)切片
切片工具爲[頭:尾:步(取值的方向)]#若是頭,尾不輸入默認爲最前面,和最後面,步若是步輸入賊默認爲1
name = 'yang wen yi'
       #012345678910
#用切片工具取其中的yang wen yi
print(name[:])
#用切片工具取其中的wen
print(name[5:8]) # 顧頭不顧尾
print(name[-6:-3])#這裏正數或者負數表明的是字符串中數據的位置,正爲從左往右數,負爲從右往左數。
#用切片工具取其中的yn
print(name[:3:2])
#用切片工具取其中的iy
print(name[:-3:-1])
print(name[10:8:-1]) #這裏的-1表明從右往左切,若是這裏的-1爲1則是從左往右切
c)長度len
name = 'yang'
print(len(name))
d)成員運算in/not in
表示判斷什麼東西里有沒有什麼,表示判斷
name = 'yang'
print('y' in name)
True
e)移除strip
name1 = '     yan          '
name2 = 'a    yan            a'
print(name1.strip())
#yang
print(name2.strip())
#'a    yan            a'
#strip只移除兩端的
f)切分split
name = 'yang,wen,yi'
#按照,把名字切分紅3個
print(name.split(',',2))
#['yang', 'wen', 'yi']
#按照,把名字切分紅2個
print(name.split(',',2))
#['yang', 'wen,yi']   默認是從左往右
g)循環
name = 'yangwneyi'

for i in name:
    print(i)
'''
y
a
n
g
w
e
n
y
i
'''

2.掌握

a)lstrip&rstrip
#lstrip左端清除  記憶(l=left左,strip清楚)
name = '     yang'
print(name.lstrip())
#yang
#rstrip左端清除 記憶(r=rightt右,strip清除)
b)lower&upper
#LOWER(小寫)
name = 'yang WEN'
print(name.lower())
#yang wen #將字符串中的大寫變成小寫
#upper
name = 'yang WEN'
print(name.upper())
#YANG WEN #將字符串中小寫變成大寫
c)startswith&endswith
# startswith
name = 'yang WEN'
print(name.startswith('yang'))
#True      #內容從前日後找
print(name.endswith('WEN'))
#True
printprint(name.endswith('NEW'))
#False    #內容從後往前找可是內容是從左往右讀寫的
d)rsplit

與split相似,可是切割方向從右往左切割blog

e)join
#JOIN用於字符串的拼接
name = 'yang,wen,yi'
print(' '.join(name))
#y a n g , w e n , y i
#若是是列表
name_list = ['yang','wen','yi']
print(''.join(name_list))
#yangwenyi
補充純數字不能拼接
f)replace
#replace(替換)
name = 'yang wen yi'
print(name.replace('yang','wen'))
#wen wen yi
g)isdigit
salary = '111'
print(salary.isdigit())
#True
salary = '111.1'
print(salary.isdigit())
#False
#是否爲整列,第一個是,第二個不是

3.瞭解

a)find|rfind|index|rindex|count
# str之find()、rfind()、index()、rindex()、count()
name = 'yang wen yi'
print(name.find('yang'))
# 0        
print(name.find('wen'))
#5                        find若是找到結果,則輸出爲該內容的第一個字符的索引,他找不到會報錯
rfind就是從右邊開始找結果都是同樣的就是開頭和找的方向不同
index找的也是索引與find區別在於他沒找會報錯
count,找到內容輸出爲1,找不到內容輸入爲0
b)center|ljust|rjust|zfill
# str之center()、ljust()、rjust()、zfill()
print(f"'info nick'.center(50,'*'): {'info nick'.center(50,'*')}")
********************info nick*********************  #內容中間,填充兩側
print(f"'info nick'.ljust(50,'*'): {'info nick'.ljust(50,'*')}")
info nick*****************************************  #內容左邊,填充右邊
print(f"'info nick'.rjust(50,'*'): {'info nick'.rjust(50,'*')}")
*****************************************info nick   #內容右邊邊,填充左邊
print(f"'info nick'.zfill(50): {'info nick'.zfill(50)}")  
 00000000000000000000000000000000000000000info nick     # 默認用0填充
c)expandtabs
# str之expandtabs()
print(f"a\\tb\\tc: %s"%('a\tb\tc\t'))  # 默認製表符8個空格
print(f"'a\\tb\\tc'.expandtabs(32): %s"%('a\tb\tc\t'.expandtabs(32)))
#主要是用來修改\t,輸出佔位符的個數
d)captalize|swapcase|title
# str之captalize()、swapcase()、title()

captalize()#首字母大寫
 swapcase()# 大小寫互轉
title()#每一個字母首字母大寫
f)is系列

.is數字系列(只是爲了告訴你,判斷是否爲數字時除了中文數字之後使用isdigit()便可)索引

  • isdecimal(): 檢查字符串是否值包含十進制字符,若是是返回True,不然返回False。
  • isdigit(): 若是字符串只包含數字則返回True,不然返回False。
  • isnumeric(): 若是字符串中只包含數字字符,則返回True,不然返回False。

今日題目

  1. 寫代碼,有以下變量name = " aleX",請按照要求實現每一個功能:
    1. 移除 name 變量對應的值兩邊的空格,並輸出處理結果遊戲

      print(name.strip(' '))
    2. 判斷 name 變量對應的值是否以 "al" 開頭,並輸出結果ip

      print(name.startswith('al'))
    3. 判斷 name 變量對應的值是否以 "X" 結尾,並輸出結果

      print(name.endswith('X'))
    4. 將 name 變量對應的值中的 「l」 替換爲 「p」,並輸出結果

      print(name.replace('l','p'))
    5. 將 name 變量對應的值根據 「l」 分割,並輸出結果。

      print(name.split('l'))
    6. 將 name 變量對應的值變大寫,並輸出結果

      print(name.upper())
    7. 將 name 變量對應的值變小寫,並輸出結果

      print(name.lower())
    8. 請輸出 name 變量對應的值的第 2 個字符?

      print(name[1])
    9. 請輸出 name 變量對應的值的前 3 個字符?

      print(name[:3])
    10. 請輸出 name 變量對應的值的後 2 個字符?

      print(name[-2:])
    11. 請輸出 name 變量對應的值中 「e」 所在索引位置?

      print(name.index('e'))
    12. 獲取子序列,去掉最後一個字符。如: oldboy 則獲取 oldbo

      for new_name in name:
          if new_name != name[-1]:
              print(new_name,end='')
  2. 編寫猜年齡遊戲,有如下要求:
    1. 若是3次沒有猜對,能夠選擇繼續玩或退出(自定義退出條件)
    2. 可能會有用戶會在輸入年齡以後再次輸入空白,如18,請作處理
    3. 可能會有用戶會惡意輸入致使程序報錯,如逗你玩呀,請作處理
age = 18
num = 0
chance = 3
while num < chance:
    ipt_age = input('請輸入您的年齡:')
    ipt_age = ipt_age.replace(' ','')
    if not ipt_age.isdigit() :
        print('別亂輸入,你這混蛋,請輸入數字!!')
        continue
    int_ipt_age = int(ipt_age)
    if int_ipt_age == age:
        print('正確')
        break
    elif int_ipt_age > age:
        print('大了')
    else:
        print('小了')
    num += 1
    if num == 3:
        yes_or_no = input("輸入'y'爲繼續遊戲,輸入其餘任何東西爲退出遊戲")
        if yes_or_no == 'y'  :
            num = 0
        else:
            print('遊戲結束,拜拜')
相關文章
相關標籤/搜索