Python第二天學(xué)習(xí)

python語(yǔ)法基礎(chǔ)
2019-04-27
--張伯羽


1.字符串的常用操作

查看字符串/列表的操作:
print(dir(''))
print(dir([]))
常用:find(),replace(),split(),count(),join(),stript()

my_str = 'hello world neuedu and neueducpp'

  • 1.replace() 把目標(biāo)字符串替換成其他字符串
name = 'hello world haha'
new_name = name.replace('ha', 'Ha', 1)
print(new_name)
price = "$599"
price = price.replace('$', '')
print(price)
hello world Haha
599
  • 2.split() 以 str 為分隔符分割 name,如果 maxsplit 指定值,那么僅分割 maxsplit 個(gè)子串
name = 'hello ha ha ha'
name_list = name.split(" ")
print(name_list)
name_list1 = name.split(' ', 2)
print(name_list1)
['hello', 'world', 'ha', 'ha']
['hello', 'world', 'ha ha']
  • 3.join() 連接字符串?dāng)?shù)組。將字符串、元組、列表中的元素以指定的字符(分隔符)連接生成一個(gè)新的字符串
str4 = " "
list1 = ['my','name','is','songxiaobao']
my_name = str4.join(list1)
print(my_name)
#  _  / ,
my_name = ",".join(list1)
print(my_name)
my name is songxiaobao
my,name,is,songxiaobao
  • 4.capitalize() 把字符串的一個(gè)字符大寫
my_str2  = my_str.capitalize()
print(my_str2)
  • 5.title() 把字符串的每個(gè)單詞首字母大寫
my_str3 = my_str.title()
print(my_str3)
  • 6.startwith 檢測(cè)字符串是否以 str 為開頭
my_str4 = my_str.startswith('hello')
print(my_str4)
my_str5 = my_str.startswith('Hello')
print(my_str5)
  • 7.endwith() 檢測(cè)字符串是否以str?yàn)榻Y(jié)尾
my_str6  = my_str.endswith('cpp')
print(my_str6)
- 8.upper 把字符串的所有變?yōu)榇髮?my_str7 = my_str.upper()
print(my_str7)
  • 9.lower 字符串的所有變?yōu)樾?/li>
my_str8 = my_str7.lower()
print(my_str8)
  • 10.rjust 返回一個(gè)原字符串右對(duì)對(duì)齊的并用空格填充 width長(zhǎng)度的新字符串
my_str_space = 'hello'
new_my_str_space = my_str_space.rjust(11)
print(len(new_my_str_space))
print(new_my_str_space)
  • 11.ljust 返回一個(gè)原字符串左對(duì)齊對(duì)對(duì)齊的并用空格填充?。鳎椋洌簦栝L(zhǎng)度的新字符串
new_my_str_space1 = my_str_space.ljust(100)
print(new_my_str_space1)
print(len(new_my_str_space1))
  • 12.center()
new_my_str_space2 = my_str_space.center(50)
print(new_my_str_space2)
print(len(new_my_str_space2))
  • 13.lstrip 清除字符串左邊的空白字符
print(new_my_str_space2)
print(len(new_my_str_space2)) # 50
new_str2 = new_my_str_space2.lstrip()
print(len(new_str2))
print(new_str2)
  • 14.rstrip()清除字符串右邊的空白字符
new_str3 =new_str2.rstrip()
print(len(new_str3)) # 5
print(new_str3)
  • 15.strip() 刪除兩端的空白字符
str1 = '\n\tdadadad\t'
print(len(new_my_str_space2))
new_str4 = new_my_str_space2.strip()
print(len(new_str4))
print(len(str1))
str2 = str1.strip()
print(len(str2))
  • 16.find ---> rfind
index5 = my_str.rfind('neuedu')
print(index5)

rindex ------> index

  • 17.partition 把mystr以str分割成3部分 str前,str , str后
print(my_str)
t_mystr = my_str.partition('neuedu')
print(t_mystr) # 元組
  • 18.rpartition 從右邊開始
  • 19.splitlines 按照行分隔,返回一個(gè)包含各行作為元素的列表
line = 'hello\nworld'
print(line)
list_line = line.splitlines()
print(list_line)
  • 20.isalpha 判斷字符串是否都是字母 返回True或False
alpha = my_str.isalpha()
print(alpha)
alpha2 = 'dddddddd'
alpha3 = alpha2.isalpha()
print(alpha3)
  • 21.isalnum 判斷是否只有字母或者數(shù)字
alpha2.isalnum()

2.列表
  • 列表的排序

sort()和sorted()的區(qū)別:
<1>.sort() 是對(duì)原來(lái)的列進(jìn)行排序,sorted()是返回一個(gè)新的列表,原來(lái)的沒(méi)有改變
<2>.sort() 是屬于列表的成員方法,sorted()是對(duì)所有可迭代的對(duì)象的方法
<3>.ls.sort(key reverse) ;sorted(ls)

from random import randint
# import random
num = randint(-10, 10) # [-10,10]
# print(num)
num_list = []
for _ in range(10):
    num_list.append(randint(1, 20))
print(num_list)
# sort()
num_list.sort()
print('正序排序:', num_list)
num_list.sort(reverse=True)
print('逆序排序:', num_list)
# sorted()
new_list = sorted(num_list)
print(num_list)
print(new_list)
  • 列表的添加
    1.append()用法

list.append(obj)
obj表示新增元素

str = input('請(qǐng)輸入您要添加的內(nèi)容')
name_list.append(str)

2.insert()用法

在指定位置前插入元素object
list.insert(index, obj)
index 表示對(duì)象 obj 需要插入的索引位置。
obj 表示要插入列表中的對(duì)象。

a = [0,1,2]
a.insert(1, 10)
print(a)

3.extend()用法

可以將另外一個(gè)集合主意添加到列表中
list.extend(seq)
seq 表示元素列表

a = [1, 2]
b = [3, 4]
a.append(b)
print(a)
a.extend(b)
print(a)
  • 列表的修改
 name_list[1] = '小明'
 print(name_list)
  • 查找
    in; not in
find_name = '和平締造者'
if find_name not in name_list:
    print('不在')
else:
    print('在')
  • 列表的刪除
    del[下標(biāo)]
    pop()
    remove()

del :根據(jù)下標(biāo)進(jìn)行刪除

del name_list[0]
print('刪除hou', name_list)

pop 刪除最后一個(gè)元素

name_list.pop()
print('刪除hou', name_list)

remove 根據(jù)元素的值進(jìn)行刪除

name_list.remove('xiaoming')
print('刪除后', name_list)
  • 列表的二維嵌套
school_name = [['qinghua', 'beida'], ['nankai', 'tianda'], ['dongqin', 'yanda']]
print(school_name)
print(school_name[0][1])
# "print(school_name[0, 1])"這種寫法在此處不可
  • 列表推導(dǎo)式:輕量級(jí)循環(huán)列表
# list1 = []
# for i in range(10):
#     list1.append(i)
# print(list1)
list2 = [i for i in range(10)]
print(list2)
list3 = ["法蘭" for _ in range(5)]
print(list3)
# [ _ for i in range]
  • 分配工作問(wèn)題
# 一個(gè)學(xué)校,三個(gè)辦公室,現(xiàn)在有8位老師等待工作的分配
import  string
from random import randint
# import random.randint as rit
# 定義3個(gè)辦公室
offices = [[], [], []]
# 定義8為老師
names = string.ascii_uppercase[:8]
# names = list(names)
print(names)
for name in names:
    # 產(chǎn)生一個(gè)隨機(jī)數(shù)[0,2]
    index = randint(0,2)
    offices[index].append(name)
print(offices)
i = 1
for tempNames in offices:
    print('辦公室{}的人數(shù)為{}'.format(i, len(tempNames)))
    i += 1
    print('成員為:')
    for name in tempNames:
        print('{}'.format(name),end='')
    print('\n')
    print('~'*30)
  • 列表轉(zhuǎn)字符串
    list = str(list)

  • 同時(shí)遍歷

zip() 用于將可迭代對(duì)象作為參數(shù),將對(duì)象中的對(duì)應(yīng)的與元素打包成
一個(gè)元組,然返回這些元組對(duì)象 節(jié)約內(nèi)存
a = [1, 2, 3]
b = [4, 5, 6]
c = [4, 5, 6, 7 ,8]
zipped = zip(a, b)
print(zipped)
print(list(zipped))
zipped1 =zip(a, c)
print(list(zipped1)) #長(zhǎng)度不一致,與最短的對(duì)象相同

示例:

guns = ['mp18', 'm1918']
bullet_num = ['32', '24']
for guns, bullet_num in zip(guns, bullet_num):
    print(guns, '---->',bullet_num)

3.元組

元組不能修改,不能刪除

  • 訪問(wèn)
 a = ('ddd',111,0.88)
print(type(a))
print(a[0])
  • 1.index() 返回改元素在元組中第一次出現(xiàn)的位置
    2.count() 返回目標(biāo)元素在元組中的個(gè)數(shù)
a = ('a', 'b','c', 'b', 'a')
index1 = a.index('a')
print(index1)
c = a.count('b')
0
2

4.字典

key ----> value

  • 訪問(wèn)
    1.dict['key'](訪問(wèn)不存在的鍵會(huì)報(bào)錯(cuò))
info = {'name': '劉強(qiáng)東', 'age': 45, 'id': 32453432543, 'address': '北京'}
# 訪問(wèn) 根據(jù) 鍵進(jìn)行訪問(wèn)
print(type(info))
print(info['name'])
# 訪問(wèn)不存在的鍵會(huì)報(bào)錯(cuò)
# print(info['sex'])
<class 'dict'>
劉強(qiáng)東

2.get()

# 使用get()方法
age = info.get('age')
print(age)
mail = info.get('mail')
print(mail)
45
None

當(dāng)我們不確定字典中是否存在某個(gè)key,而且還要獲得其value,可以使用get設(shè)置默認(rèn)值

mail = info.get('mail', '122@jingdong.com') # 設(shè)置默認(rèn)值(沒(méi)有時(shí)才起作用)
print(mail)
122@jingdong.com
  • 修改(通過(guò)key)
# 修改
info['name'] = '馬云'
print(info)
{'name': '馬云', 'age': 45, 'id': 32453432543, 'address': '北京'}
  • 添加(通過(guò)key)
# 添加元素
info['sex'] = '男性'
print('添加后:', info)
添加后: {'name': '劉強(qiáng)東', 'age': 45, 'id': 32453432543, 'address': '北京', 'sex': '男性'}
  • 刪除
# del info['name']
# print('刪除后:', info)
# # del info 刪除整個(gè)字典,再訪問(wèn)時(shí)會(huì)報(bào)錯(cuò)
# clear
info.clear()
print('after clear ', info)
after clear  {}
  • 字典的常用操作
print(len(info))  # k-v 的個(gè)數(shù)
keys = info.keys()
print(keys)
values = info.values()
print(values)
# (keys,value)
items = info.items()
print(items)
4
dict_keys(['name', 'age', 'id', 'address'])
dict_values(['劉強(qiáng)東', 45, 32453432543, '北京'])
dict_items([('name', '劉強(qiáng)東'), ('age', 45), ('id', 32453432543), ('address', '北京')])

4.集合

無(wú)序性 唯一性 
一般用于元素去重

set1 = {1, 2, 5, 4} #集合

  • 添加 add()
set1.add(8)
print(set1)
{1, 2, 4, 5, 8}
  • 刪除
    1.remove()不存在會(huì)報(bào)錯(cuò)
# 刪除
# 不存在會(huì)報(bào)錯(cuò)
set1.remove(1)
print(set1)

2.pop()隨機(jī)刪除集合中的元素,集合中沒(méi)有會(huì)報(bào)錯(cuò)

# pop 隨機(jī)刪除集合中的元素,集合中沒(méi)有會(huì)報(bào)錯(cuò)
set1.pop()
print(set1)

3.discard()

# discard 存在直接刪除,不在則不做任何操作
set1.discard(3)
set1.discard(4)
print(set1)
{1, 2, 5, 8}

5.字典解析和集合解析實(shí)例
  • 字典解析
# 隨機(jī)創(chuàng)建一個(gè)班級(jí)的分?jǐn)?shù)
from random import randint
grades = {'student{}'.format(i): randint(50, 100) for i in range(1, 21)}
print(grades)

# 篩選出高于90分的人
d = {k: v for k, v in grades.items() if v >= 90}
print(len(d))
print(d)
  • 集合解析
# 隨機(jī)創(chuàng)建一個(gè)班級(jí)的分?jǐn)?shù)
set1 = {randint(0, 20) for _ in range(20)}
print(set1)
# 找到能整除3的
res = {x for x in set1 if x % 3 == 0}
print(res)

6.函數(shù)

def 函數(shù)名(num):
pass

  • 示例
def caculateNum(num):
    '''
    計(jì)算?。薄玭um 之間的累加和
    :param num: 累加和的末尾
    :return:  累加和
    '''
    res = 0
    for i in range(1, num+1):
        res += i
    return res

r = caculateNum(100)
print(r)
5050
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容