【Python】python基本知识点——包括 tuple(元组)等结构、读取键盘键入值字符串raw_input()函数

参考

https://blog.csdn.net/qq_33679504/article/details/80516751】【tuple基本知识点】

https://www.cnblogs.com/ddpeng/p/7995444.html

 

  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了 而且码也一致了

 

 


 

其他

 

 

 


 

待补充。。。

 

posted @ 2019-03-07 16:14  anno_ym雨  阅读(1144)  评论(0编辑  收藏  举报