日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python第二周day5

發布時間:2024/3/12 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python第二周day5 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python第二周day5(9.27)

1、day9字符串作業更改版

# *1.1輸入一個字符串,打印所有奇數位上的字符(下標是1,3,5,7…位上的字符) # 例如: 輸入**'abcd1234 ' ** 輸出**'bd24'** # 切片 str1 = 'abcd1234' print(str1[1::2]) # bd24 # 2.1輸入用戶名,判斷用戶名是否合法(用戶名長度6~10位) # str2 = input('請輸入一個用戶名:') # if 6 <= len(str2) <= 10: # print('用戶名合法') # else: # print('用戶名不合法') # 請輸入一個用戶名:陳來 # 3.1 **輸入用戶名,判斷用戶名是否合法(用戶名中只能由數字和字母組成)(經常遇到) # user_name = input('請輸入一個用戶名:') # for x in user_name: # if not ('0' <= x <= '9' or 'a' <= x <= 'z' or 'A' <= x <= 'Z'): # print('用戶名不合法') # break # else: # print('用戶名合法') # 4.1 ***輸入用戶名,判斷用戶名是否合法(用戶名必須包含且只能包含數字和字母,并且第一個字符必須是大寫字母) user_name = input('請輸入一個用戶名:') if 'A' <= user_name[0] <= 'Z':# 保存數字字符的個數count = 0for x in user_name[1:]:if not ('0' <= x <= '9' or 'a' <= x <= 'z' or 'A' <= x <= 'Z'):print('用戶名不合法')breakelse:if '0' <= x <= '9':count += 1else:if count: # count !=0 一樣print('用戶名合法')else:print('用戶名不合法') else:print('用戶名不合法') # 練習5:輸入一個字符串,將字符串中所有的數字字符取出來產生一個新的字符串 str3 = 'abc1shj23kls99+2kkk' new_str3 = '' for x in str3:if '0' <= x <= '9':new_str3 += x print(new_str3) #123992 # 練習6:輸入一個字符串,將字符串中所有的小寫字母變成對應的大寫字母輸出 (用upper方法和自己寫算法兩種方式實現) str1 = 'a2h2klm12+' # 方法一 # 規律:小寫字母轉大寫字母:小寫字母的編碼值 - 32 --> 轉換成字符 new_str1 = '' for x in str1:if 'a' <= x <= 'z':new_str1 += chr(ord(x)-32) # ord(字符) ,chr(編碼值)else:new_str1 += x print(new_str1) # A2H2KLM12+ # a:97 A:65 b:98 B:66 # 方法二 # 字符串.upper() - 將字符串中所有的小寫字母轉換成對應的大寫字母,產生一個新的字符串 # lower 大寫轉小寫 new_str1 = str1.upper() print(new_str1) # A2H2KLM12+ # **練習7:輸入一個小于1000的數字,產生對應的學號(簡單做法,運用+,*) # 輸入 ** '23' **,輸出 ** 'py1901023' ** 輸入 ** '9' **, 輸出 ** 'py1901009' ** 輸入 ** '123' **,輸出 ** 'py1901123' ** # 23 -> 023 9 -> 009 123 -> 123 num = '23' study_id = 'py1901' + (3-len(num))*'0'+num print(study_id) # 'py1901 # 練習8.1 輸入一個字符串,統計字符串中非數字字母的字符的個數 # str1 = input('請輸入一個字符串:') str1 = 'anc2+93-sj胡說' count = 0 for x in str1:if not ('0' <= x <= '9' or 'a' <= x <= 'z' or 'A' <= x <= 'Z'):count += 1 print(count) # 4 # 練習9:輸入字符串,將字符串的開頭和結尾變成'+',產生一個新的字符串 # 例如: 輸入字符串**'abc123'**, 輸出**'+bc12+ str1 = input('請輸入一個字符串:') new_str1 = '+'+str1[1:-1]+'+' print(new_str1) # +bc12+ # 練習10.1. ***輸入字符串,獲取字符串的中間字符 # 例如: 輸入**'abc1234'** 輸出:**'1'** 輸入**'abc123'** 輸出**'c1'** str1 = 'abc1234c' count = len(str1) if count % 2:print(str1[count//2]) else:print(str1[count//2 - 1:count // 2 +1]) # 12 # **練習11:11. **寫程序實現字符串函數find/index的功能(獲取字符串1中字符串2第一次出現的位置) # 例如: 字符串1為:**how are you? Im fine, Thank you!** , 字符串2為:**you**, 打印**8** str1 = 'how are you? Im fine, Thank you!' str2 = 'you' len1 = len(str1) len2 = len(str2) for index in range(len1-len2 + 1): # *8取到最后三位if str1[index: index + len2] == str2: # **切片每次獲得三個元素print(index)break else:print('找不到') # 12.獲取兩個字符串中公共的字符 # 例如: 字符串1為:**abc123**, 字符串2為: **huak3** , 打印:**公共字符有:a3** str1 = 'abc123' str2 = 'huak3' result = set(str1) & set(str2) # 使用集合的交集 & print(''.join(result)) # 使用join方法直接轉 new_str1 = '' for x in result:new_str1 += x print(new_str1)

2、r語法

1.r語法(阻止轉義)

在字符串的最前面加r或者R,可以讓字符串中所有的轉義字符的功能消失(每個符號都會變成普通字符)

str1 = r'C:\users\name\test\demo.py' str1 = R'C:\users\name\test\demo.py' str2 = 'C:\\users\\name\\test\demo.py' print(str1)

3、字符串格式化

# name = input('請輸入姓名:') # age = int(input('請輸入年齡:')) # message = 'xxx今年xx歲' name = '小新' age = 17 # 方法一:字符串拼接 message = name +'今年'+str(age)+'歲' print(message) # chenlai今年12歲# 方法二:格式字符串 message = '%s今年%d歲' % (name, age) print(message)# 方法三:f-string message = f'{name}今年{age}歲!' print(message)

1.格式字符串
“”"
語法:包含格式占位符的字符串 % (數據1,數據2,…)
%s->字符串 %d->整數
格式占位符:
%s - 字符串占位符(任何類型占位,不確定時可以使用)
%d - 整數占位符
%f - 浮點數占位符(保存6位小數)
%.Nf - 浮點數保留N位小數

1)%s可以給任何類型的數據占位(如果只有一個數據可以省略括號)

str1 = '%sxxx' % ('陳來') str1 = '%sxxx' % '陳來' str2= '%sxxx' % (123) str2= '%sxxx' % ([12, 11]) print(str1, str2)

2)%d 可以給任何能轉換成數字數據占位

str1 = '%d-xxx' % 12 str1 = '%d-xxx' % 12.5 print(str1)

3)%f 可以給任何能轉換成數字數據占位

str2 = '%f-xxx' % 4.34 print(str2) #4.340000-xxx str1 = '余額:%.2f' % 78.9908099 print(str1) # 余額:78.99str1 = '%s今年%d歲,月薪:%.2f元' % (name, age, 10000+2300) # 只要不是賦值語句就可以 print(str1) # 小新今年17歲,月薪:12300.00元 str2 = '%s嘉年是%d年,總收入額達到%3.f' % ('某某公司',12,123.89) print(str2)

2.f-string
“”"
1)基本用法
語法:f’{任何有結果的表達式}’ - 用表達式的結果來填充{}所在的位置

2)加參數
語法:f’{任何有結果的表達式:參數}’
參數:
.Nf — 控制小數位數
, — 逗號分隔銀行金額的格式,數字三位之間用逗號隔開(金額)
.N% — 將數轉換成百分比,比值保留N位小數
X>N — 將數據轉換成長度為N的字符串,不夠在前面用X對應的字符來填充
X<N — 將數據轉換成長度為N的字符串,不夠在后面用X對應的字符來填充
解釋:

,< - 決定填充的時候填在前面還是后面
X - 填充字符
N - 目標長度
“”"

1)基本用法

str1 = f'收到你請講' str1 = f'{name}收到你請講' str1 = '{name}收到你請講' str1 = f'{name}-{age}-{age*10}-{name[-1]}' # 小新-17-170-新。f'{里面是有結果的表達式}' print(str1) str1 = f'{age- 10}是多少歲呢,{name}' print(str1)

2)參數

a…Nf

money = 2305 str1 = f'金額:{money:.2f}' print(str1) # 金額:2305.00

b. ,

money = 2345000 str1 = f'余額:{money:,}' print(str1) # 2,345,000.三位之間用逗號隔開

c. .N%

rate = 0.5 str1 = f'市場占有率:{rate:.2%}' print(str1)

d.X>N X<N 放前面,添幾位,不夠的加什么x :

,< - 決定填充的時候填在前面還是后面
X - 填充字符
N - 目標長度

num = 23 str1 = f'Python2106{num:0>3}' print(str1) # Python2106023str1 = f'Python2106{num:好<3}' print(str1) # Python2106023

4、字符串相關方法

所有的關于字符串的相關方法看一下
菜鳥教程 - python字符串(網址) https://www.runoob.com/python3/python3-string.html
1、center,rjust,ljust,zfill
“”"
字符串.center(長度,填充字符),例如:‘abc’.center(7,‘x’)->‘xxabcxx’
字符串.rjust(長度,填充字符),例如:‘abc’.rjust(7,‘x’)->‘xxxxabc’
字符串.ljust(長度,填充字符),例如:‘abc’.ljust(7,‘x’)->‘abcxxxx’
字符串.zfill(長度)==字符串.rjust(長度,‘0’),例如:‘abc’.zfill(7)->‘0000abc’

“”"

print('abc'.center(7,'x')) # xxabcxx print('abc'.zfill(7)) # 0000abc

2.count

“”"
字符串1.count(字符串2) - 統計字符串1中字符串2出現的次數
字符串1.count(字符串2,開始下標,結束下標) - 在開始下標到結束下標(取不到)對應的范圍內容統計字符串2出現的次數
“”"

str1 = 'how are you? i am fine, thank you. and you?' print(str1.count('a')) # 4 print(str1.count('you')) # 3 print(str1.count('a', 0, 12)) # 1 print(str1.count('u', 0, 10)) # 0

3.find,index
“”"
字符串1.find(字符串2) - 獲取字符串1中字符串2第一次出現的位置,返回0開始的下標值;如果字符串2不存在,返回-1
字符串1.index(字符串2) - 獲取字符串1中字符串2第一次出現的位置,返回0開始的下標值;如果字符串2不存在,報錯
字符串1.find(字符串2,開始下標,結束下標),字符串1.index(字符串2,開始下標,結束下標)
“”"

str1 = 'how are you? i am fine, thank you. and you?' print(str1.find('you')) # 8 print(str1.index('you')) # 8print(str1.find('you1')) # -1 # print(str1.index('you1')) # 報錯 print(str1.find('you', 0, 8)) # -1

4.isdigit,isnumeric
“”"
字符串.isdigit() - 判斷是否是純數字字符串(數字指0~9的數字字符)
字符串.isnumeric() - 判斷是否是純數字字符串(單個數字指具有數字意義的字符)
“”"

print('123456'.isdigit()) # True print('2323'.isnumeric()) # True print('one2323一二三'.isnumeric()) # False print('2323一二三'.isnumeric()) # True print('2323一Ⅴ'.isnumeric()) # True

*5.islower,isupper
“”"
字符串1.islower() - 判斷字符串是否是純小寫字母字符串
字符.islower() - 判斷是否是小寫字母

字符串1.isupper() - 判斷字符串是否是純大寫字母字符串
字符.isupper() - 判斷是否是大寫字母
“”"

print('abcs'.islower()) # True print('ABCS'.isupper()) # True

**6.join
“”"
字符串.join(序列) - 將序列中的元素用指定的字符串拼接成一個新的字符串
注意:序列中的元素必須是字符串
“”"

result = '+'.join('abc') # a+b+c result = 'and'.join('abc') print(result) # aandbandcresult = '+'.join(['小明','張三']) # 小明+張三 result = ''.join(['小明','張三']) print(result) # 小明張三s1 = {'a', '1'} # 集合去重后連接在一起 result = ''.join(s1) print(result) # a1 # **練習:將下面列表中的元素合并成一個字符串(有問題)【推導式+join】【推導式很重要】 # ['abc', 100, 12.5, True, 'hello'] -> 'abc10012.5Truehello' list1 = ['abc', 100, 12.5, True, 'hello'] result = ''.join(str(x) for x in list1) print(result) # **練習2:已經一個列表保存多個學生的分數,提取所有學生的姓名,以一個字符串的形式返回(有問題)【推導式+join】 # [{'name':'張三', 'age': 18}, {'name':'小明', 'age': 20}, {'name':'小花', 'age': 30}] -> '張三,小明,小花' students = [{'name': '張三', 'age': 18},{'name': '小明', 'age': 20},{'name': '小花', 'age': 30} ] result = ','.join(x['name'] for x in students) print(result)

7.strip, lstrip, rstrip
“”"
字符串.strip() - 去掉字符串兩端的空白字符
字符串.lstrip() - 去掉字符串前面的空白
字符串.rstrip() - 去掉字符串后面的空白
“”"

str1 = ' \tabc 123 \n' result = str1.strip() print('==', result, '===', sep='') # ==abc 123===result = str1.lstrip() print('==', result, '===', sep='') # ==abc 123 ===result = str1.rsplit() print('==', result, '===', sep='') # ==['abc', '123']===

8.replace
“”"
字符串1.replace(字符串2,字符串3) - 將字符串1中所有的字符串2替換成字符串3
字符串1.replace(字符串2,字符串3, N) - 替換前N個
“”"

str1 = 'how are you? i am fine, thank you. and you?' result = str1.replace('you', 'me') print(result) # how are me? i am fine, thank me. and me? result = str1.replace('you', 'me', 2) # 替換前2個 print(result) # how are me? i am fine, thank me. and you?

9.maketrans,translate
“”"
str.maketrans(字符串1,字符串2) - 創建一張字符串1和字符串2的字符對應表
字符串.translate(表)
“”"

舉例說明ege: table = str.maketrans('ain', '你我他') # a->你,i->我,n->他 str1 = 'how are you? i am fine, thank you. and you?' result = str1.translate(table) print(result) # 練習:將字符串中所有的阿拉伯數字都替換成對應的中文數字 # '123木頭人,88' -> '一二三木頭人,八八' table = str.maketrans('0123456789', '零一二三四五六七八九') # 替換所有 str1 = '123木頭人,88' # result = '123木頭人,88'.translate(table) result = str1.translate(table) print(result) # 一二三木頭人,八八 # 10.rfind,rindex 從后往前找 str1 = 'how are you? i am fine, thank you. and you?' print(str1.find('you')) #8 從前往后找 print(str1.rfind('you')) #39 從后往前找

11.split
“”"
字符串1.split(字符串2) - 將字符串1中所有的字符串2作為切割點對字符串進行切割
“”

str1 = 'how are you? i am fine, thank you. and you?' result = str1.split('you') print(result) # ['how are ', '? i am fine, thank ', '. and ', '?']# 注意:如果切割點在最前面或者最后面或者出現連續的切割點,結果會出現空串 str2 = 'mnayoua==a123aklp' print(str2.split('a')) # ['mn', 'you', '==', '123', 'klp'] str2 = 'mnayouaa==a123aklp' print(str2.split('a')) # ['mn', 'you', '', '==', '123', 'klp']

5、函數的價值

nums = [29, 10, 12, 18, 23] print(max(nums))

6、認識函數和定義函數

1.認識函數
“”"

  • 概念:函數就是對實現某一特定功能的代碼的封裝 - 機器
  • 函數的分類
    系統函數(系統造好的機器) - 由Python創建好的函數,例如:print,input,type,max,min,id等
    自定義函數(自己造機器) - 由程序員自己創建的函數
    “”"
    def func():
    print(’======’)
    print(’++++++’)
    print(’------’)
    func()
    func()
    func()
    2.定義和函數(創建函數)
    “”"
    語法:
    def 函數名(形參列表):
    函數說明文檔
    函數體
  • 說明:
    a.def - 關鍵字;固定寫法
    b.函數名 - 由程序員自己命名
    要求:是標識符;不能是關鍵字
    規范:見名知義(看到函數名大概知道這個函數的功能是什么);
    所有的字母都小寫,多個單詞之間用下劃線隔開;
    不使用系統的函數名,類名和模塊名
    c. () - 固定寫法
    d.形參列表 - 以’變量名1,變量名2,變量名3,。。。‘格式存在。
    這兒的每一個變量就是一個形參,如果不需要形參,括號里什么都不用寫
    形參是用來將函數外部的數據傳遞到函數內部。(可以理解成連接函數外部和內部的通道)
    需不需要形參就看實現函數的功能需不需要額外的數據
    e. : - 固定寫法
    f. 函數說明文檔 - 本質就是文檔注釋’’’’’’,""""""
    g. 函數體 - 和def保持一個縮進的一條或者多條語句;
    函數體就是實現函數功能的代碼

    “”"

    # 練習1:定義一個函數,求任意兩個數的和 def sum2(num1, num2):print(num1 + num2)# 練習2:定義一個函數,求N的階乘 # N! = 1*2*3*...*N def factorial(n):result = 1for x in range(1, n+1):result *= xprint(result)

    總結

    以上是生活随笔為你收集整理的python第二周day5的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。