Have basic knowledge of Python > 0x1 basic knowledge

Notes taken while studying " Liao Xuefeng's Official Website: Python Tutorial "

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 第一行告诉Linux系统,这是一个Python可执行程序,从PATH环境变量找解释器
# 第二行告诉Python解释器,按照UTF-8读取源代码(前提是源文件确实是UTF-8 without BOM编码的)

# IO
# 读取用户输入并存放到变量(含提示)。
name = input('please enter your name')
# 依次依次打印每个字符串,以空格隔开。
print('Hello,' name)

# 基础
# 约定使用4个空格的缩进。编辑器要设置为把Tab自动转换为4个空格。
# 复制粘贴(CV)将失效,粘贴后必须检查缩进是否正确。

## 整数
# 不像Java,没有大小限制。
# 十六进制用0x前缀。允许用'_'分隔数字。
print(0x_1_f)

## 浮点数
# 没有大小限制,超出范围用inf(无限大)。
# 用科学计数法表示时,用e代替底数10。
print(2.0e1)

## 字符串
# 用'\'转义
print('I\'m \"OK\"!')
# 用r'...'要求不转义
print(r'C:\temp\new')
# '''...'''表示多行内容,取代不好阅读的'\n'
print('''line1 x
line2 xx
line3 xxx''')

## 布尔值
# True/False,注意大小写
# 与或非,and or not
print(True or False)

## 空值
# None,特殊的空值,不能理解为0。

## 变量
# 变量的类型可被赋值改变。(动态语言,弱类型)
a = 1
print(type(a))
a = str(a)
print(type(a))
# 变量赋值给变量,使b跟a指向同一对象。随后对a的赋值(重新指向)不影响b的指向。
a = 'A'
b = a
a = 'Z'
print(b)

a = [1]
b = a
a = [1, 2]
print(b)
# 引用类型?
b = a
a.append(3)
print(b)

# 除法
# /:结果是浮点数,精确。
# //:地板除,取商的整数部分。
# %:取余数。

# 编码
# 多行注释
''' 
ASCII (计算机是美国发明的,最早只有127个字符) -> 
GB2312 (中国自己的,多语言混合文本会乱码) -> 
Unicode (多语言统一,常用2字节的UCS-16) ->
UTF-8 (可变长,节约,英文字母1字节,汉字3字节,生僻4-6字节)
'''
# 在计算机内存中,统一使用Unicode,存储或传输时转换为UTF-8。
# 如网页中的 <meta charset="UTF-8" />
# Python3字符串以Unicode编码,支持多语言。
print('含中文的str')
# ord()获取字符的整数表示,chr()相反。
i = ord('中')   # \u4e2d
print(i)    # 20013, 0x4e2d
print(chr(i))
# 'b'前缀表示bytes类型,跟Unicode的'ABC'不一样,b'ABC'的每个字符只占用一个字节。
x = 'ABC'.encode('ascii')
# Unicode的str可encode()为指定的bytes(字节序列),decode()相反。
print(x, x.decode('ascii'))
y = '中'.encode('utf-8')
print(y, y.decode('utf-8'))
# 为了避免乱码,坚持使用UTF-8编码对str和bytes进行转换。

# 格式化
# 格式化和C语言一致,dfsx。%s会把任何数据类型转为字符串。
print('%s, %s100%%' % ('Hello', 'world'))
print('%3d-%03d' % (3,1))   # '  3-001'
# %a.bf,a表示浮点数的长度(含小数点的长度1),b表示浮点数小数点后的精度。b默认时最大为6。原值输出或补齐空格(或指定0)。
PI = 3.1415926
print('%05.2f' % PI) # '03.14'
# {n}占位符
print('{0}, {1:04.1f}'.format('Hello', PI))   # Hello, 03.1
# f-string
print(f'{
      
      PI}, {
      
      PI:04.1f}')  # 3.1415926, 03.1

# list tuple
## list
l = [1, 'two']
l.append(3)
l.insert(0, False)
l.pop()
l.pop(0)
## tuple
# 一旦初始化,每个元素的 指向 永远不变,故用它代码更安全。
t = (1,)
t = (1, ['a', 'b'])
t[1][0] = 'A'
print(t)    # 第二个元素实际是个list,list变了。但tuple指向没有变,还是这个list。

# dict
# 内部存放顺序与key放入顺序无关。key必须是不可变对象,不能是list。
d = {
    
    'a': 97, 'b': 98}
print(d['a'])
print('c' in d)
print(d.get('c', -1))   # 要求返回-1而不是None
d.pop('b')

# set
# 无序。集合运算:交&、并|。
s = set([1, 2, 3, 2])
s.add(2)
s.remove(3)

# 不可变对象
# 对于不可变对象来说,调用对象自身的任意方法,都不会改变对象自身的内容,而是创建并返回一个新的对象。这样就保证了不可变对象的不可变。
# str是不可变对象。str.replace()不会改变str自己,而list.sort()会改变list自己。



Guess you like

Origin blog.csdn.net/qq_33067925/article/details/120424466