资讯专栏INFORMATION COLUMN

Python 学习笔记1

TANKING / 497人阅读

摘要:编码应运而生,编码实际上是一个大的编码表,他使用最少两个字节表示一个字符的编码方式每种语言占用了码表的某个段,在对应的段内编码自己的语言比如对应的编码就是。

输出

python 的输出使用print 语法

print "hello world"  //hello world
//或者
print "hello", "world" //hello world
//或者
print "hello" "world" //helloworld

请注意上面的第二和第三个,一个使用,连接字符串,一个使用空格连接字符串,输出的结果中,逗号连接的中间有个空格,而空格连接的,中间没有任何东西

输入

python的输入使用raw_input函数

hello = raw_input("Input your word:")
//括号中的参数表示输入的提示字符串,输入的结果保存在`hello`变量中
空值

python中的空值用None表示,类似于PHP中的Null

字符串编码

python 中的字符串编码问题,首先要搞明白asicii编码, unicode编码和utf-8编码之间的关系,这里总结如下:

  

asicii编码长度8位(一个字节),包含了所有的英文字母和一些常见的字符,
能够表示256种编码方式,比如字母a对应的asicii编码就是122(01111010),
因为英文总共也就只有那么些个字母和字符,所以一般情况下,asicii码表中的编码足够英文编码使用,但是其他的语言,比如中文,常见的中文字符就起码好几万个,
一个字节明显不够, 这就催生了针对中文的编码表,使用两个字节甚至是三个字节表示一个中文字符,
比如GB2312编码(2个字节表示一个字符), 但假如一个使用GB2312编码的文件,
被一个其他编码比如使用asicii编码的编辑器打开,
你看到的却都是乱码,这是因为asicii编码使用一个字节一个字节读取二进制文件(文件最终还是以二进制形式保存在磁盘中的)的关系,
每次读取的都是原来2个字节长度中的一半的长度,一个中文字符的一半,我们当然看不懂了。 unicode编码应运而生,
unicode编码实际上是一个大的编码表,
他使用最少两个字节表示一个字符的编码方式,每种语言占用了码表的某个段,在对应的段内编码自己的语言,比如

`a` 对应的unicode编码就是`00000000 01111010`。

这样,世界上的很多语言就能统一使用unicode编码进行写入和读取了 utf-8编码则是将unicode编码节约,
比如把英文字母定义为1个字节,中文字符定义为3个字节,这样英文字母中的前面的那么多没用的0位就能砍去了

python 早期不支持unicode编码, 但现在已经支持,使用u"..."语法, 可以输出中文内容了

print u"中" //中
print u"u4e2d" //中
u"中"       //u"u4e2d"

最下面的输出打印出的是的十六进制unicode编码, 在print的时候,u"中"u"u4e2d"的输出结果都是一样的
另外,如果要计算中文字符串的字符长度的话,也要带u,否则输出的长度就是字节长度,而不是字符串长度了

print len(u"中") //1
print len("中")  //3

如果在编码文件中要输入或输出中文或者其他的非asicii编码的字符时,要在文件的第二行(第一行一般是#!/usr/bin/env python)加上# -*- coding: utf-8 -*-

list(列表) 和 tuple(元组)

list 和 tuple 类似于PHP中的索引数组,list和tuple的结构相似,但list可以随时进行写入和删除,而tuple一但初始化就不可以改动
list(列表):

使用[]语法表示,比如

names = ["Tony", "Sam", "James"]

可以随时写入和删除

写入末尾使用append,

  names.append("Yi_Zhi_Yu")
  print names //["Tony", "Sam", "James", "Yi_Zhi_Yu"]

插入指定位置,注意这个插入,比如要插入一个"Gordon"在"Tony"和"Sam"之间,"Gordon"的索引值就是1, 原先的"Tony"后面的所有元素的索引各+1

names.insert(1,"Gordon")
print names //["Tony", "Gordon", "Sam", "James", "Yi_Zhi_Yu"]

更新元素,使用类似于PHP的语法,直接对指定的索引位置的元素赋值

names[1] = "Wang"
print names//["Tony", "Wang", "Sam", "James", "Yi_Zhi_Yu"]

删除元素,使用pop语法,pop函数输出的是删除的元素值

  names.pop() //删除末尾
  print names //["Tony", "Wang", "Sam", "James"]
  names.pop(1)//删除指定位置(1位置"Wang")
  print names //["Tony", "Sam", "James"]

tuple(元组):

使用()语法表示

一但初始化,不可改变

单个元素的写法要加一个,,与算数运算中的括号区分开,如

name=("Yi_Zhi_Yu",)//("Yi_Zhi_Yu",)

python在显示单个元素的tuple时,也会带",", 如果不带的话,输出的就只是一个字符串了

name = ("Yi_Zhi_Yu") //Yi_Zhi_Yu

学习参考:
廖雪峰python教程

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/45365.html

相关文章

  • ApacheCN 人工智能知识树 v1.0

    摘要:贡献者飞龙版本最近总是有人问我,把这些资料看完一遍要用多长时间,如果你一本书一本书看的话,的确要用很长时间。为了方便大家,我就把每本书的章节拆开,再按照知识点合并,手动整理了这个知识树。 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=200); 贡献者:飞龙版...

    刘厚水 评论0 收藏0
  • ApacheCN 编程/大数据/数据科学/人工智能学习资源 2019.6

    摘要:请回复这个帖子并注明组织个人信息来申请加入。权限分配灵活,能者居之。数量超过个,在所有组织中排名前。网站日超过,排名的峰值为。导航归档社区自媒体平台微博知乎专栏公众号博客园简书合作侵权,请联系请抄送一份到赞助我们 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=...

    Bmob 评论0 收藏0
  • SegmentFault 技术周刊 Vol.30 - 学习 Python 来做一些神奇好玩的事情吧

    摘要:学习笔记七数学形态学关注的是图像中的形状,它提供了一些方法用于检测形状和改变形状。学习笔记十一尺度不变特征变换,简称是图像局部特征提取的现代方法基于区域图像块的分析。本文的目的是简明扼要地说明的编码机制,并给出一些建议。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 开始之前,我们先来看这样一个提问: pyth...

    lifesimple 评论0 收藏0
  • Python入门,学习Udacity的《计算机基础导论》的笔记

    摘要:此文是记录我在学习的过程,主要目的是怕学了后面的了前面的,方便复习。不得不承认,老外的课程确实比国内的课程更有趣。所以提升性能的个关键降低电子需要行径的距离提高每秒发射电子的次数。 此文是记录我在udacity.com学习python的过程,主要目的是怕学了后面的wan了前面的,方便复习。也希望能帮到和我一样的初学者,这个课程的是Udacity的《计算机基础导论》,https://cl...

    SKYZACK 评论0 收藏0
  • ApacheCN 学习资源汇总 2019.3

    摘要:主页暂时下线社区暂时下线知识库自媒体平台微博知乎简书博客园合作侵权,请联系请抄送一份到特色项目中文文档和教程与机器学习实用指南人工智能机器学习数据科学比赛系列项目实战教程文档代码视频数据科学比赛收集平台,,剑指,经典算法实现系列课本课本描述 【主页】 apachecn.org 【Github】@ApacheCN 暂时下线: 社区 暂时下线: cwiki 知识库 自媒体平台 ...

    array_huang 评论0 收藏0

发表评论

0条评论

TANKING

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<