资讯专栏INFORMATION COLUMN

Python学习 - 概览

ziwenxie / 2339人阅读

摘要:最近空了些,学习一些有意思的东东。常量通常用大写字母表示类似的。其他语言也需要进行相应的编码,比如编码中文两个字节。这段代码的两幅图条件判断两段代码就可以大概知道下的了。判断某中是否存在某个键值。,返回一个新的字符串,原来的并没有改变。

最近空了些,学习一些有意思的东东。主要是看网上的教材,这篇也是边看编写的。

Python教程

输入和输出

输入:raw_input(),输入形式为字符串格式

>>> name = raw_input("input sth:")
input sth:Michael
>>>name
"Michael"
>>>birth = int(raw_input("birth: "))
birth: 1485
>>> birth
1485

这样就把输入的字符串转换为整型了。

输出:print

print "The quick brown fox", "jumps over", "the lazy dog"
>>> The quick brown fox jumps over the lazy dog
数据类型和变量

Python可以没有大括号{}和分号,用缩进替代{},程序区分大小写。

比如:

name = raw_input("enter a number:")
if name >= 0:
    print name 
elif name < 0:
    print -name
else:
    print "not a number"

包括了整数(ox表示十六进制),浮点数(1.23e9=1.23 x 10的9次方),字符串(为转义字符),布尔值(True,False,可以用and,or,not运算),空值(None)

数据类型包括变量和常量。常量通常用大写字母表示(类似C++的define)。

Python的变量赋值类似指针

a = "ABC"
b = a
a = "XYZ"
print b

最后结果是XYZ

字符串和编码

计算机能处理的是二进制文件,就需要把字符串转化为二进制数字进行保存。最早时采用的是ASCII编码方式,用一个字节(8位)把字母编码到计算机里,比如A对应数字65z对应122。其他语言也需要进行相应的编码,比如GB2312编码中文(两个字节)。在不同语言采用不同编码保存时,读取字符串就成了问题。

因此有了Unicode,把所有语言用一种方式编码。但有时Unicode占用内存较浪费,比如A只需要一个字节的内存,事实上多过一个字节,就又有了UTF-8编码,智能化字符串的编码方式,节省内存。

Unicode转换为UTF-8保存到文件::

浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器::

文件保存的是UTF-8的编码方式,打开时变为Unicode编码方式。

Python的出现比Unicode早,普通的字符串用ASCII编码

>>> ord("A")
65
>>> chr(65)
"A"

后来增加了对Unicode的支持

>>> print u"中文"
中文
>>> u"中"
u"u4e2d"

Unicode编码转换未utf-8编码

>>> u"ABC".encode("utf-8")
"ABC"
>>> u"中文".encode("utf-8")
"xe4xb8xadxe6x96x87"

utf-8转换为unicode

>>> "abc".decode("utf-8")
u"abc"
>>> "xe4xb8xadxe6x96x87".decode("utf-8")
u"u4e2du6587"
>>> print "xe4xb8xadxe6x96x87".decode("utf-8")
中文

在代码中包含中文时,就需要用UTF-8编码读取,在文件头加一行

# -*- coding: utf-8 -*-

Python也可以使用格式化输出。

>>> "Hello, %s" % "world"
"Hello, world"
>>> "Hi, %s, you have $%d." % ("Michael", 1000000)
"Hi, Michael, you have $1000000."
使用list和tuple

list类似objective-c下的NSMutableArray,

>>> classmates = ["Michael", "Bob", "Tracy"]
>>> classmates
["Michael", "Bob", "Tracy"]

可以使用len(classmates)计算list元素个数,classmates[-1]获取list最后一个
元素。

在list最后增加一个元素

>>> classmates.append("Adam")
>>> classmates
["Michael", "Bob", "Tracy", "Adam"]

在某个index插入一个元素

>>> classmates.insert(1, "Jack")
>>> classmates
["Michael", "Jack", "Bob", "Tracy", "Adam"]

删除list的最后一个元素classmates.pop(),删除某个index的元素classmates.pop(i)

tuple是另一种有序元祖,与list类似,但是tuple一旦初始化后就不能修改了。

>>> t = (1, 2)
>>> t
(1, 2)

如果只定义一个元素,采用t = (1),则t不是一个tuple,而是一个整形数字,因为()也可以认为是数学公式中的小括号。可以通过加上,来区分tuple和单个数字t = (1, ),python在显示只有一个元组的tuple时,也会加上,

tuple也可以是可变的,比如:

>>> t = ("a", "b", ["A", "B"])
>>> t[2][0] = "X"
>>> t[2][1] = "Y"
>>> t
("a", "b", ["X", "Y"])

tuple有一个元素是list,而list是可变的。这段代码的两幅图:

条件判断

两段代码就可以大概知道Python下的if else了。

Python省去了{},使用缩进代替。

age = 3
if age >= 18:
    print "your age is", age
    print "adult"
else:
    print "your age is", age
    print "teenager"
age = 20
if age >= 6:
    print "teenager"
elif age >= 18:
    print "adult"
else:
    print "kid"
#如果只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False
if x:
    print "True";

Python下的for循环

names = ["Michael", "Bob", "Tracy"]
for name in names:
    print name
sum = 0
for x in range(101):
    sum = sum + x
print sum

range(101) = [0,1,2,3....100]

还有一种是while循环

sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 1
print sum
使用dict和set

dict是一种key-value数据存储格式。

>>> d = {"Michael": 95, "Bob": 75, "Tracy": 85}
>>> d["Michael"]
95

判断某dict中是否存在某个键值。

>>> d.get("Thomas")
>>> d.get("Thomas", -1)//-1为自定义返回值
-1
>>> "Thomas" in d
False

pop(key)删除dic中的某个特定键值对,比如d.pop("Bob")

string对象在Python中是不可变的。

>>> a = "abc"
>>> b = a.replace("a", "A")
>>> b
"Abc"
>>> a
"abc"

a.replace("a","A"),返回一个新的字符串Abc,原来的a并没有改变。

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

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

相关文章

  • Python 基础概览

    摘要:通过函数名作为其的参数就能得到相应地帮助信息。类是面向对象编程的核心,它扮演相关数据及逻辑的容器的角色。之后是可选的文档字符串,静态成员定义,及方法定义。 Python 源文件通常用.py 扩展名。当源文件被解释器加载或显式地进行字节码编译的时候会被编译成字节码。由于调用解释器的方式不同,源文件会被编译成带有.pyc或.pyo扩展名的文件,你可以在第十二章模块学到更多的关于扩展名的知识...

    zhongmeizhi 评论0 收藏0
  • 概览 AI训练服务 UAI Train

    摘要:概览概览产品简介什么是训练服务交互式训练分布式训练分布式训练简介分布式训练分布式训练产品优势产品更新记录产品定价快速上手开始使用快速上手案例介绍环境准备创建镜像仓库 概览产品简介什么是AI训练服务交互式训练分布式训练分布式训练简介TensorFlow分布式训练MXNet分布式训练产品优势产品更新记录产品定价快速上手开始使用UAI-Train快速上手-MNIST案例MNIST 介绍环境准备创建...

    ernest.wang 评论0 收藏2903
  • python核心数据类型 -- 概览

    摘要:概览数字字符列表字典元组文件其他类型集合,,类类型,其他文件类工具管道,先进先出管道,套接字文件类型转换非字符字符项目操作和的结果相同对象的精确值,但大多数使用可转化的非数值数值项目操作转化为整数转化为浮点序列化项目操作字符串转化为 概览 showImg(https://segmentfault.com/img/remote/1460000008522793?w=739&h=823);...

    pinecone 评论0 收藏0
  • Express 实战(一):概览

    摘要:一个标准性的事件就是年的横空出世。引擎快速处理能力和异步编程风格,让开发者从多线程中解脱了出来。其次,通过异步编程范式将其高并发的能力发挥的淋漓尽致。它也仅仅是一个处理请求并作出响应的函数,并无任何特殊之处。 showImg(https://segmentfault.com/img/remote/1460000010819116); 在正式学习 Express 内容之前,我们有必要从大...

    zhaochunqi 评论0 收藏0
  • 初学者怎么选择神经网络环境?对比MATLAB、Torch和TensorFlow

    摘要:本报告面向的读者是想要进入机器学习领域的学生和正在寻找新框架的专家。其输入需要重塑为包含个元素的一维向量以满足神经网络。卷积神经网络目前代表着用于图像分类任务的较先进算法,并构成了深度学习中的主要架构。 初学者在学习神经网络的时候往往会有不知道从何处入手的困难,甚至可能不知道选择什么工具入手才合适。近日,来自意大利的四位研究者发布了一篇题为《神经网络初学者:在 MATLAB、Torch 和 ...

    yunhao 评论0 收藏0

发表评论

0条评论

ziwenxie

|高级讲师

TA的文章

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