[Python] Python 学习记录(1)

1.概论

弱类型 一个变量能被赋值时能与原类型不同 

x = 1

x = "1"  #不加分号,给x赋值为int后再次赋值为string是可行的

与或非 and or not

/  #除法的结果是浮点数, 9 / 3 = 3.0

// #结果是整数 10 // 3 = 3

空值为None(相当于null)

内置类型  Numbers(整数和浮点数), Strings,Lists

print('') 

print("%%") #%  字符串打印单引号和双引号皆可

print(r'C:Userslocal')  #C:Userlocal raw 表示不转义 相当于C#中@

字符串跨多行

print(''' 内容

内容''') 

'''内容'''

2.字符串

字符编码

ASCII 使用一个字节 包含127个编码 (大小写英文、数字、特殊符号)

Unicode 使用两个字节表示一个字符 (偏僻的使用4个字节)

Utf-8(8-bit Unicode Transformation Format) 针对Unicode的可变长编码

属于ASCII的字符用一个字节,汉字使用两个字节编码 完全兼容ASCII

计算机内存中统一使用Unicode编码,需要保存或传输时转换为Utf-8编码

ord() #取字符的整数表示

chr() #把编码转换为字符

print('u4e2du6587') #中文 

x = b'ABC' #x为bytes 一个字符占用一个字节

x = 'ABC'  #x为str

字符串编码(bytes str互转)

str->bytes 'STR'.encode('ascii')  # utf-8

bytes->str b'STR'.decode('ascii')

字符串格式化

'%d,%f,%s,%x' % (2333,3.14,'Python str',0x23)

'%2d-%02d' %(3,1)   #3-01

'%.2f' % 3.1415  #3.14

字符串可以用 + 连接

用 * 用来重复字符串 3 * 'a' #aaa

print('a' 'b')   #ab 这样a和b会自动连接起来,少写个 + 

word = 'Python' 

print(word[0])  #p

print(word[-1])   #n 倒数第一个

word[0:2]   #Py

word[2:5]   #tho

word[:2]     #Py

word[4:]     #on

word[-2:]    #word[-2] + word[-1] on

字符串有不可变性 word[0] = 'A' 会报错

3.list 

x = [1, 2, 3, 4]

和字符串一样index用起来比较方便

x[0] #1

x[1:2] #[2, 3]

x[-2:] #[3, 4]

y = [4, 5, 6, 7]

x + y  #[1, 2, 3, 4, 5, 6, 7]   集合的并操作

tuple 

与list类型,但其中的元素不可变

4.分片

有点Matlab的感觉

L = [1,2,3]

L[0:2]  L[0] L[1]

L[1:]  #L[1] 到最后一个元素 或者写成L[1:-1]

L[-1] 最后一个元素

L[:10:2] #前10个数,每两个取一个 [0,2,4,6,8]

5.map() & reduce()

map(func, [1,2,3])

将[1,2,3]中每个元素作为参数执行一次func

reduce(func, [1,2,3])

func(func(1,2),3)

练习解答

输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']

 def normalize(name):
     first = name[0].upper()
     for i in name[1:]:
             first = first + i.lower()
     return first

L1 = ['adam', 'LISA', 'barT']
L2 = list(map(normalize, L1))
print(L2)

6. filter()

filter(func,[1,2,3,4])

和map类似,以每个元素为参数调用func,返回为ture的保留,否则丢弃

sorted([2,3,4,5,6,7],key = comparer, reverse = false)

传一个比较方法即可快速实现排序

参考链接

字符串和编码-廖雪峰的官方网站

https://docs.python.org/3/tutorial/introduction.html

原文地址:https://www.cnblogs.com/arcsinw/p/6372140.html