Python随笔

0.注释

Python的注释符号为#
示例
#这是注释

1.类型转换

用户输入总是默认是字符串类型,常用的显式类型转换方法如下:
str() int() float()
当使用数字拼接字符串时,需要进行显式类型转换

2.算术逻辑运算

与C++不同的是,“/”在Python中将直接给出小数值,若要使用整数除法,应使用符号“//”。
同时,“%”符号仍代表模运算
逻辑运算由 and、or与not实现,但这些运算符无法应用于位运算

3.输入

用户输入赋值由函数input()完成
示例

num1=int(input())

4.输出

输出由print()函数实现,该函数会缺省的打印一个换行符,若不想让它打印换行符,可使用参数end=“”指定结尾符号
示例

#将打印 hello world\n
print("hello ",end="")
print("world")

同时该函数还有一个参数名为sep,可用于指定分隔符,未指定时默认分隔符为空格
示例

//将打印 Alice Bob\n
print("Alice","Bob")
//将打印 Alice,Bob\n
print("Alice","Bob",sep=",")

5.len()函数

len()函数将给出指定字符串的长度(中文字符串也是,不会乘以二)

6.选择控制流

示例

if(condition A):
 	statement A
elif(condition B):
 	statement B
else:	
	statement C

7.循环控制流

while循环较为简单,不再赘述
下面看for循环
示例

for i in range(5):

等价于

for i in range(0,5):

等价于

for i in range(0,5,1):

8.定义函数

示例

def hello(name):
	print("hello"+name)

下面只需显式调用该函数即可
函数也可以有返回值,但不用对返回值的类型进行提前声明

9.None值

None是NoneType类型的唯一值,在C++中为NULL
每个函数缺省的返回值是None

10.异常处理

异常处理使用try-except块
示例

def spam(divideBy):    
	try: 
		return 42 / divideBy  
	except ZeroDivisionError:        
		print('Error: Invalid argument.') 

11.列表

列表类似于C++中的数组
但可以支持 负数下标,表示倒数第几个元素
列表支持切片操作
示例

Arr=["A","B","C","D"]
Brr=Arr[1:3]	#结果是["B","C"](不含后一下标元素)

列表复制与连接
列表支持不同数据类型作为同一列表的元素
示例

Arr=[1,2,3,4]
Brr=Arr+["A","B"]

删除列表元素
删除列表元素使用关键字del
示例

Arr=[1,2,3]
del Arr[1]

in / not in关键字
用于判断某元素是否在列表中,表达式将返回一个布尔值
示例

Arr=[1,2,3]
print(1 in Arr)	#将打印True

12.列表的多重赋值

示例

Arr=["A","B","C"]
AStr,BStr,CStr=Arr	#变量数量必须与数组长度严格相等,否则会抛出valueError

13.列表的方法

index()方法

列表的index()方法将返回某元素的索引值
示例

Arr=["A","B","C"]
print(Arr.index("B"))	#将打印“B”的索引值1
列表中还提供了append() insert() remove() sort()等方法

其中 sort() 方法可指定关键字
示例

Arr=[1,2,3]
Arr.sort(reverse=True)

14.字符串与元组(类列表类型)

字符串与列表一样支持使用[ ]取得索引号对应的元素,同样可以使用切片来获得指定字符串的子串。
但应当注意的是:字符串与列表不同之处是字符串是不可变的,即不支持修改字符串中的指定字符,若要完成上述功能,应当使用字符串拼接功能赋值给新的字符串。

元组数据类型

元组使用圆括号()排列一组数据
示例

Arr=('hello',1,1.5)
Brr=('hello',)	#这里的逗号表明这是一个元组(对于单个元素的元组必须这样表示)
print(Arr[1])

元组与列表最大的不同在于元组是不可变的,不允许对元组的元素进行修改、添加、删除。否则会抛出一个异常。

15.list()和tuple()函数

list()与tuple()函数用于在列表与元组之间进行转换,同时,这两个函数也可将字符串转化为字符列表或字符元祖。

16.列表的引用

列表数据结构与C++中相同的是:列表间的直接赋值都是将引用指向了同一块内存。
同样的,当列表名作为参数传入函数中,列表的引用将被值复制,实际导致一个数组本身的引用传递。

17.copy模块的copy()与deepcopy()函数

copy()函数将完全复制一个新的列表交给另一个列表名。但若列表的元素是列表,则它只能完成内部列表引用的复制,这将导致内部列表的引用传递。
若要复制内部的列表,应当使用deepcopy()函数(只对一层列表有效)。
示例

import copy
Arr=['A','B','C']
Brr=copy.copy(Arr)

18.字典数据结构

字典提供了一种根据键值索引元素值的功能
示例

 myCat = {'size': 'fat', 'color': 'gray', 'disposition': 'loud'}
 print(myCat['size'])	#将打印 fat

字典内部是无序的

下面给出一个应用示例:

birthdays = {'Alice': 'Apr 1', 'Bob': 'Dec 12', 'Carol': 'Mar 4'} 
 while True: 
   print('Enter a name: (blank to quit)')     
   name = input()     
   if name == '':         
   	break 
   if name in birthdays: #使用in关键字判断列表中是否有该键print(birthdays[name] + ' is the birthday of ' + name)     
   else:         
   	print('I do not have birthday information for ' + name)         
   	print('What is their birthday?') 
	bday = input()   
  	birthdays[name] = bday    
  	print('Birthday database updated.') 

19.字典的keys(),values(),Items()方法

示例 (其它两个函数也一样)

spam = {'color': 'red', 'age': 42} 
for v in spam.values():
	print(v) 

使用list()函数能将其转化为一个值/键/元素列表

20.字典的get()与setdefault()方法

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

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

setdefault()方法完成下面的功能:
若字典中不存在该键,就添加该键与值的映射对
若字典中已存在该键,就不做修改

示例

 spam = {'name': 'Pooka', 'age': 5} 
 spam.setdefault('color', 'black') 
 spam.setdefault('color', 'white')	#仍然为‘black’

该方法的应用示例:

message = 'It was a bright cold day in April, and the clocks were striking thirteen.'
count = {} 
for character in message: 
	count.setdefault(character, 0) #若没出现过则添加置零
	count[character] = count[character] + 1 #优点是该句在第一次添加的字符时不会抛出异常
print(count) 
 

21.字典的漂亮打印

使用pprint模块下的pprint()函数能够漂亮的打印一个字典(每行一个键值对)
示例

import pprint message = 'It was a bright cold day in April, and the clocks were striking thirteen.' 
count = {} 
for character in message: 
	count.setdefault(character, 0)     
	count[character] = count[character] + 1 
pprint.pprint(count) 
 

22.字符串的三重引号

三重引号’’’ ‘’'或""" “”'括住的字符串在打印时将包含内部的所有换行符制表符格式
示例

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

此外,三重引号也常用作多行注释
示例

"""
这是注释
多行注释
"""

23.字符串常用方法

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

这些方法的功能是将字符串转换大小写以及判断是否为大小写

isX()方法

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

startswith() 和 endswith()

该方法判断字符串是否以指定字符串开头或结尾,返回一个布尔值

join()和 split()

join()实现列表元素拼接成字符串
split()实现将字符串拆分成列表
示例

#将打印 cats, rats, bats
 print(', '.join(['cats', 'rats', 'bats'])) 
#将打印 My name is Simon
 print(' '.join(['My', 'name', 'is', 'Simon'])

示例

 #将返回一个['My', 'name', 'is', 'Simon'] 
 Arr='My name is Simon'.split() 

该方法默认按照各种空白字符分割,诸如空格、制表符或换行符
同时也可以在split()方法中指定分隔符

strip()、rstrip()和 lstrip()

该方法用于删除左/右的空白字符
也可以指定要删除两边哪些指定字符(只需无顺序的将字符连成字符串即可)

pyperclip 模块拷贝粘贴字符串
 import pyperclip  
 pyperclip.copy('Hello world!') #将该字符串复制到剪切板
 pyperclip.paste() 

你可能感兴趣的:(Python随笔)