Python基础学习笔记(3)

《Python编程快速上手》

1.Python字典

#Python字典
myCat = {'size':'fat','color':'gray','disposition':'loud'}

不像列表或者元组,字典中的表项是不排序的。因为字典是不排序的,所以不能像列表那样切片。

key()、values()和items()方法

#key()返回键、values()返回值、items()返回键-值对
#for循环可以迭代每个键,或者键-值对
spam = {'color':'red','age':42}
for k in spam.keys():
    print(k)
for v in spam.values():
    print(v)
for i in spam.items():
    print(i)
>>color
>>age
>>red
>>42
>>('color', 'red')
>> ('age', 42)

附注:
1.items()方法返回的dict_items值中,包含的是键和值的元组。

2.这些方法返回的值不是真正的列表,如果希望通过这些方法得到一个真正的列表,就把类似列表的返回值传递给list函数。

spam = {'color':'red','age':42}
list(spam.keys())
>>['color','age']

3.也可以用多重赋值的技巧,在for循环中将键和值赋给不同的变量。

spam = {'color':'red','age':42}
for k,v in spam.items():
    print("Key: "+ k + "Value: " + str(v))

如果v不使用str()函数时,会报错误:TypeError: must be str, not int

检查字典中是否存在键或值

in和not in操作符可以检查值是否存在于列表中。

spam = ['name':'Zophie','age':7]

'name' in spam.keys()
>>True
'Zophie' in spam.values()
>>True

get()方法

字典有一个get()方法,它有两个参数:要取得其值的键,以及如果该键不存在时,返回的备用值。

picnicItems = {'apple':5,'cups':2}
'I am bringing' + 'str(picnicItems.get('cups',0))' + ' cups.'
>> 'I am bringing 2 cups.'
'I am bringing' + 'str(picnicItems.get('eggs',0))' + ' cups.'
>> 'I am bringing 0 eggs'

setdefault()方法

setdefault()方法是一个很好的快捷方式,可以确保一个键存在。如果键存在,返回键的值,如果键不存在,进行设置。

spam = {'name':'Pooka','age':5}
spam.setdefault('color','black')
>>'black'
spam
>> {'color','black','name':'Pooka','age':5}
spam.setdefault('color','white')
>>'black'
spam
>> {'color','black','name':'Pooka','age':5}

第一次调用setdefault()时,spam变量中的字典为{‘name’:’Pooka’,’age’:5}。该方法返回值’black’,因为现在该值被赋给键’color’。当spam.setdefault(‘color’,’white’)接下来被调用时,该键的值“没有”被改成’white’,因为spam变量已经有名为’color’的键。

2.字符串表达

字符串 ‘That is Alice’s cat.’ 是错误的,可以有下面几种解决方法:

#1.双引号
" That is Alice's cat. "
#2.转移字符 (\t代表制表符、\n代表换行符)
'That is Alice\'s cat.' 
#3.原始字符串 (可以在字符串开始的引号之前加上r,使它成为原始字符串。)
str = r'That is Alice's cat.'

3.用三重引号的多行字符串

在Python中,多好字符串的起止是3个单引号或3个双引号。“三重引号”之间的所有引号、制表符或换行,都被认为是字符串的一部分。(也就是原样打出)

print('''Dear Alice,
Eve's cat has been arrested for catnapping, cat burglary, and extortion.
Sincerely,
Bob''')
>>
Dear Alice,
Eve's cat has been arrested for catnapping, cat burglary, and extortion.
Sincerely,
Bob

4.Python多行注释

"""
多行注释
print("HelloWorld")
"""

5.字符串下标和切片

字符串像列表引用,使用下标和切片。可以将字符串“Hello world”看成一个列表,字符串中的每个字符都是一个表项,有对应的下标。

spam = 'Hello world!'
spam[0]
>>'H'
spam[-1]
>>'!'
spam[6:]
>>'world!'

请注意,字符串不可修改,可以通过切片和拼接才能修改,字符串切片并没有修改原来的字符串。可以从一个变量中获取切片,记录在另一个变量中。

字符串的in和not in操作符

spam = 'Hello world!'
' ' in spam
>>True

6.upper()、lower()、isupper()和islower()

#upper()、lower()将原字符串的所有字母都被相应地转换为大写或小写
spam = "HelloWorld"
print(spam.upper())
print(spam)
>>HELLOWORLD
  HelloWorld

spam = spam.lower()
print(spam)
>>helloworld

请注意,这些方法没有改变字符串本身,而是返回一个新字符串。

如果你希望改变原来的字符串,就必须在该字符串上调用upper()或lower(),然后将新字符串赋给保存原来字符串的变量。也就是使用spam = spam.upper()

附注,如果字符串至少有一个字母,并且所有字母都是大写或小写,isupper()和islower()方法就会相应地返回布尔值True。

7.isX字符串方法

下面是一些isX字符串方法:

  • isalpha()返回True,如果字符串只包含字母,并且非空。
  • isalnum()返回True,如果字符串只包含字母和数字,并且非空。
  • isdecimal()返回True,如果字符串只包含数字字符,并且非空。
  • isspace()返回True,如果字符串只包含空格、制表符和换行,并且非空。
  • istitle()返回True,如果字符串仅包含以大写字母开头、后面都是小写字母地单词。

8.字符串方法startswith()和endswith()

startswith()和endswith()方法返回True,如果它们所调用地字符串以该方法传入地字符串开始或结束。

'Hello world!'.startswith('Hello')
>>True
'Hello world!'.endswith('world!')
>>True

9.字符串方法join()和split()

#join()
','.join(['cats','rats','bats'])
>>'cats,rats,bats'
' '.join(['My','name','is','Simon'])
>>'My name is Simon'

#split()
'My name is Simon'.split()
>>['My','name','is','Simon']
'cats,rats,bats'.split(',')
>>['cats','rats','bats']

附注:
1.join()是把字符串列表连接起来,成为一个单独地字符串。split()是针对一个字符串,返回一个字符串列表。

2.调用join()方法的字符串,被插入到列表参数中的每个字符串的中间。
split()方法中,默认按照各种空白字符分割,诸如空格、制表符或换行符,也可以向split()方法传入一个分割字符串,指定它按照不同的字符串分割。

10.用rjust()、ljust()和center()方法对齐文本

'Hello'.rjust(10)
>>'     Hello'
'Hello'.rjust(20)
>>'              Hello'
'Hello World'.rjust(20)
>>'         Hello World'
'Hello'.ljust(10)
>>'Hello     '
'Hello'.rjust(10,*)
>>'*****Hello'

附注:
1.rjust()和ljust()一般通过插入空格来对齐文本。
2.rjust()和ljust()可以通过指定第二个参数来指定一个填充字符,替代空格字符。

'Hello'.center(20)
>>'       Hello        '
'Hello'.center(20,'*')
>>'*******Hello********'

center()是让文本居中。

用strip()、rstrip()和lstrip()删除空白字符

spam = ' Hello World '
spam.strip()
>>'Hello World'
spam.rstrip()
>>' Hello World'
spam.lstrip()
>>'Hello World'

lstrip()删除左边的空白字符,rstrip()删除右边的空白字符, strip()删除两边的空白字符。(空白字符包括空格、制表符和换行符)

#左边是换行符,右边是制表符
spam = "" \
       "HelloWorld  "

print(spam.strip())
>> HelloWorld

11.用pyperclip模块拷贝黏贴字符串

pyperclip模型有copy()和paste()函数。

import pyperclip
pyperclip.copy('Hello World')
pyperclip.paste()
>> 'Hello World'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值