第4章 基本概念

字面意义上的常量

如5、1.23、9.23e-3,或者 'This is a string'、"It's a string!" 字符串等

常量,不能改变它的值

python 有4种数据类型:整数、长整数、浮点数和复数。

  • 整数 2
  • 长整数是大一些的整数 123456789012345
  • 浮点数 3.23、52.3E-4,E标记表示10的幂。其中 52.3E-4 表示 52.3 * 10-4
  • 复数 -5+4j 、2.3-4.6j

字符串

单引号(')

如 'Quote me on this' 。所有的空白,即空格和制表符都照原样保留。

双引号(")

双引号中字符串与单引号中的字符串的使用完全相同,如"What's your name?"

三引号(''' 或 """)

使用三引号可以指示一个多行的字符串,可以在三引号中使用单引号和双引号。

'''This is a multi-line string. This is the firstline.
This is the second line.
"What's your name?," I asked.
He said "Bond, James Bond."
'''

>>> strA='a'
>>> strB="a"
>>> print strA
a
>>> print strB
a

>>> strC='''1
... 2
... 3'''
>>> strC
'1\n2\n3'
>>> print strC
1
2
3
>>> strC="""1
... 2
... 3"""
>>> strC
'1\n2\n3'
>>> print strC
1
2
3

转义符(\)

用于特殊符号的转义,放在前面,表示特殊符号本身。

>>> print "a b"
a b
>>> print "a \nb"
a
b
>>> print "a \\nb"
a \nb

折行的处理:在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继续,而不是开始一个新的行。

"This is the first sentence.\
This is the second sentence."

等价于 "This is the first sentence. This is the second sentence."

>>> print "hello \
... Lucy!"
hello Lucy!

自然字符串,即不会当作特殊字符处理

给字符串加上前缀 r 或 R 来保存字符串的原格式。例如 r"Newlines are indicated by\n"。

Unicode 字符串

Unicode 是书写国际文本的标准方法。在字符串前加上前缀 u 或 R,来处理 Unicode 文本。

处理含有非英语语言写的文本文件时使用 Unicode 字符串。如,print u'你好' 。

字符串是不可变的

字符串一旦被创建就不能再改变了。

按字面意义级连字符串

两个字符串按字面意义相邻放着,会被 python 自动级连。

例如,'What\'s' 'your name?' 会被自动转为 "What's your name?"。

注意:单引号和双引号字符串完全相同。一般用自然字符串处理正则表达式,以避免使用反斜杠。

变量

与字面意义上的常量不同,变量的值可以变化,即可以使用变量存储任何东西(数和字符串)。变量只是计算机中存储信息的一部分内存。

>>> a=1
>>> a
1
>>> print a
1

>>> a='abc'
>>> a
'abc'
>>> print a
abc

>>> a="abc 你好"
>>> a
'abc \xc4\xe3\xba\xc3'
>>> print a
abc 你好

>>> strA ='''
... 1
... 2
... 3'''
>>> strA
'\n1\n2\n3'
>>> print strA

1
2
3

>>> strB='''1
... 2
... 3'''
>>> strB
'1\n2\n3'
>>> print strB
1
2
3
>>> strC="""
... 1
... 2
... 3
... """
>>> strC
'\n1\n2\n3\n'
>>> print strC

1
2
3

>>>

标识符的命名

变量是标识符的例子。标识符是用来标识某样东西的名字。命名规则如下:

  • 标识符的第一个字符必须是字母(大写或小写)或下划线(_)
  • 标识符可以由字母(大写或小写)、下划线(_)或数字(0-9)组成
  • 标识符名称对大小写敏感。如,myname 和 myName 不是一个标识符

建议:标识符命名要见名知意

数据类型

变量可以处理不同类型的值,称为数据类型。python 基本的数据类型是数字和字符串。

可以通过 type() 函数来确认类型

>>> a=1
>>> type(a)
<type 'int'>

>>> a=12456778892
>>> type(a)
<type 'long'>

>>> a=1.12
>>> type(a)
<type 'float'>

>>> a=4+4j
>>> type(a)
<type 'complex'>

>>> a='ab'
>>> type(a)
<type 'str'>

对象

python 把程序中用到的任何东西都称为对象。

就每一个东西包括数、字符串甚至函数都是对象这一点来说,python 是极其完全地面向对象的。

如何编写Python程序
下面是保存和运行Python程序的标准流程。
1. 打开你最喜欢的编辑器。
2. 输入程序代码。
3. 用注释中给出的文件名把它保存为一个文件。按照惯例把所有的Python程序都以扩展名.py保存。
4. 运行解释器命令python program.py或者使用IDLE运行程序。你也可以使用先前介绍的可执行的方法。

注意:使用变量时只需要给它们赋一个值。不需要声明或定义数据类型。

逻辑行与物理行

逻辑行:编写的程序

逻辑行:python 看见的单个语句

建议:为了使代码更加易读,python 每个物理行只写一句逻辑行,即每一行写一个语句。

仅当逻辑行太长时,可以使用行连接在多个物理行写一个逻辑行

  • 明确的行连接:反斜杠(\)
  • 暗示的行连接:圆括号、方括号或波形括号

如果一个物理行中使用多个逻辑行,需要使用分号(;)隔开。分号表示一个逻辑行/语句的结束。

缩进

行首的空白称为缩进。在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。

同一层次的语句必须有相同的缩进,这样一组语句称为一个块。错误的缩进会引发错误。

避免混合使用制表符和空格来缩进,因为跨平台时可能会无法正常工作。

每个缩进层次使用 单个制表符 或 两个 或 四个 空格。

A Byte of Python 笔记(2)基本概念:数、字符串、转义符、变量、标识符命名、数据类型、对象的更多相关文章

  1. A Byte of Python 笔记(9) 面向对象编程

    第11章  面向对象编程 面向过程:根据操作数据的函数或语句块来设计程序. 面向对象(OOP, object-oriented programming):把数据和功能结合起来,用对象包裹组织程序. 类 ...

  2. A Byte of Python 笔记(7)数据结构:列表、元组、字典,序列

    第9章 数据结构 数据结构,即可以处理一些数据的结构.或者说,它们是用来存储一组相关数据的. python 有三种内建的数据结构--列表.元组和字典. list = ['item1', 'item2' ...

  3. MOOC python笔记(三) 序列容器:字符串、列表、元组

    容器概念 容器是Python中的重要概念,分为有序与无序. 有序容器也称为序列类型容器,如:字符串.列表. 通用序列容器操作 容器连接+ 加号可以把两个序列连接成一个更大的容器,相加后两个序列的值并不 ...

  4. 读书笔记「Python编程:从入门到实践」_2.变量和简单数据类型

    做了大半年RPA了,用的工具是Kapow. 工作没有那么忙,不想就这么荒废着,想学点什么.就Python吧. 为期三个月,希望能坚持下来. 2.1 变量的命名和使用 变量名只能包含字母.数字和下划线. ...

  5. Python笔记【1】_字符串学习

    #!/usr/bin/env/python #-*-coding:utf-8-*- #Author:LingChongShi #查看源码Ctrl+左键 #字符串:通常有单引号“'”.双引号“" ...

  6. 【Python编程:从入门到实践】chapter2 变量和简单数据类型

    2.1 运行2.2 变量 message = "hello" print(message) 2.2.1 变量的命名和使用 2.2.2 使用变量是避免命名错误2.3 字符串 “Hel ...

  7. python]用eval强制将字符串转换为字典变量时候出错:NameError: name 'null' is not defined[python]用eval函数 字符串转dict

    本博客已搬家至个人网站 在路上 - On the way 下面的 技术 分类. 你可以通过点击 更新帖子 [已解决]Python中,用eval强制将字符串转换为字典变量时候出错:NameError: ...

  8. A Byte of Python 笔记(12)python 标准库:sys、os,更多内容

    第14章 python 标准库 Python标准库是随Python附带安装的,它包含大量极其有用的模块. sys 模块 sys 模块包含系统对应的功能.如 sys.argv 列表包含命令行参数. # ...

  9. A Byte of Python 笔记(11)异常:try..except、try..finally

    第13章 异常 当你的程序中出现某些 异常的 状况的时候,异常就发生了. 错误 假如我们把 print 误拼为 Print,注意大写,这样 Python 会 引发 一个语法错误. 有一个SyntaxE ...

随机推荐

  1. python 【第四篇】:面向对象(一)

    1.前言 提笔忘字,感慨良多!python自习前前后后有一年多了吧,貌似花了不少时间,其实没学到啥东西,都是在面向对象编程之前基础知识这块一直打转转,每次到了面向对象这块就感觉很蒙,看两天直接放弃,从 ...

  2. S3C6410嵌入式应用平台构建(三)

    构建了好久的系统,由于工作原因,没有及时写记录,目前我已经进展到构建yaffs2文件系统,启动Linux内核了.Uboot移植基本功能已经完成. 由于Uboot移植方法大致是一样的,我主要参考这位博友 ...

  3. 达内TTS6.0课件oop_day01

  4. 2014.9.3数据库CRUD

    CRUD 增删改查 DCL 数据控制语言:备份,grant DML 数据操作语言: CRUD DDL 数据定义语言:create drop alter 自增长列不能赋值 增: Insert into  ...

  5. LayoutInflater作用及使用

    作用: 1.对于一个没有被载入或者想要动态载入的界面, 都需要使用inflate来载入. 2.对于一个已经载入的Activity, 就可以使用实现了这个Activiyt的的findViewById方法 ...

  6. $.ajax传递字符串到后台,后台返回json对象

    var mall = { MallID: $("#createId").val().trim(), MallName: $("#createName").val ...

  7. BZOJ 1415: [Noi2005]聪聪和可可( 最短路 + 期望dp )

    用最短路暴力搞出s(i, j)表示聪聪在i, 可可在j处时聪聪会走的路线. 然后就可以dp了, dp(i, j) = [ dp(s(s(i,j), j), j) + Σdp(s(s(i,j), j), ...

  8. 如何让对象只在堆或者栈中分配空间ANDC++禁止一个类被继承

    在开始之前先来分析一下C++中的new运算符和operator new之间的关联. new:指我们在C++里通常用到的运算符,比如A* a = new A或者调用带参数的构造函数;  对于new来说, ...

  9. Android 汉字转拼音之JNI篇

    package com.tool.hz2py; import android.os.Bundle; import android.app.Activity; import android.view.M ...

  10. codeforces 510E. Fox And Dinner 网络流

    题目链接 给出n个人, 以及每个人的值, 要求他们坐在一些桌子上面, 每个桌子如果有人坐, 就必须做3个人以上. 并且相邻的两个人的值加起来必须是素数.每个人的值都>=2. 由大于等于2这个条件 ...