【Python】python基本知识点——包括 tuple(元组)等结构、读取键盘键入值字符串raw_input()函数
参考
【https://blog.csdn.net/qq_33679504/article/details/80516751】【tuple基本知识点】
tuple 结构是不可以修改的,也不可以进行append,起初我以为和matlab中的 cell 结构相似,结果emmm……
首次了解 tuple 结构,是在 np.where() 中返回的查询结果进行 type() 类型查看时候发现的。
例如:
np.where(data_t2 == Query) # 查询data_t2这个dataframe中等于Query代表的字符串的位置。 # 检索结果 # (array([5914], dtype=int64), array([0], dtype=int64))
上述检索结果: (array([5914], dtype=int64), array([0], dtype=int64)) 当中,是一个 tuple元组,是一个里面包含了两个 array结构的 tuple元组。
type(np.where(data_t2 == Query)) # 对np.where的反馈结果进行type() 命令查看类型 # 返回结果为 # <type 'tuple'>
继续向 tuple 里面查看
np.where(data_t2 == Query)[0] # 结果显示 # array([5914], dtype=int64) np.where(data_t2 == Query)[1] # 结果显示 # array([0], dtype=int64) type(np.where(data_t2 == Query)[0]) # 再使用type()对tuple元组内进行类型查看 # 结果显示 # <type 'numpy.ndarray'>
【判断 tuple 里是否为空的方法?判断list是否为空?】
【参考】
【https://www.jb51.net/article/149281.htm】
【https://blog.csdn.net/MG_ApinG/article/details/85450197】【这个比较全】
我采用了根据 len() 函数的返回长度值确定是否为空,若空,则 len值 是0;非空,则 len值 不为0;
len(np.where(data_t1 == Query)[0] ) # 0 len(np.where(data_t1 == Query)[1] ) # 0 len(np.where(data_t2 == Query)[0] ) # 1 len(np.where(data_t2 == Query)[1] ) # 1
raw_input() 函数:读取键盘键入值,读取用户键盘输入。
raw_input() 函数从标准输入读取一个行。并返回一个字符串(去掉结尾的换行符):
str = raw_input("Enter your input: ");
print "Received input is : ", str
【举例】
Query=raw_input('Enter your Query Word:') # Enter your Query Word:>? 暴雨 print "Received input is : ", Query # Received input is : 暴雨
【一个问题】
【unicode编码转str】
进行上述键入raw_input()函数时,发现raw_input()读入的中文字符,其type()类型为“unicode”。
而很遗憾的是,python中变量type()是string(str)类型的变量,二者使用的中文编码方式不一样,python变量这里默认是“utf-8”格式的编码
md找了好多文档结果带着跑了弯路,都在说什么用gbk编码、gb2312、blablabla的都不是我要的……(主要还是对各类编码不太了解 想了解编码格式可以戳这个 博客)
如何对python中的字符进行编码与解码 请戳这个 博客
【举例】
我使用raw_input() 并且完成编码转换的
Query='暴雨' Query # 屏显: # '\xe6\x9a\xb4\xe9\x9b\xa8' type(Query) # 屏显: # <type 'str'> # ============================= Query=raw_input('Enter your Query Word:') # 屏显 并键入 # Enter your Query Word:>? 暴雨 Query # 屏显 # u'\u66b4\u96e8' 可以看到同样都是Query为“暴雨” 但二者编出的码不一样 type(Query) # 屏显 # <type 'unicode'> 该Query的编码方式是unicode 而最上面是str 最上面的形式才是我想要的 #=============================== Query=raw_input('Enter your Query Word:').encode('utf-8') # 屏显 并键入 # Enter your Query Word:>? 暴雨 type(Query) # 屏显 # <type 'str'> Query # 屏显 # '\xe6\x9a\xb4\xe9\x9b\xa8' 可以看到现在和最上面的Query“暴雨”终于一样了 二者编码都是str了 而且码也一致了
其他
待补充。。。