Python基础

转载 2016年08月31日 10:55:44

Python基础

  • #开头是注释
  • Python区分大小写
  • 注意缩进
  • :结尾时候,缩进的语句视为代码块

数据类型和变量

在Python中有的数据类型

整数

Python可以处理任意大小的整数,包括负整数,可以使用十进制,1111000,-8080,0

也可以用十六进制代表,加前缀ox,如oxff00,oxa5b3c3d2a

浮点数

也就是小数。

整数和浮点数在计算机内部存储的方式是不同的,整数永远都是精确的,而浮点数可能存在误差。

字符串

字符串是用单引号'或者双引号"括起来的任意文本,但是单引号和双引号本身就作为一个表达方式,不是字符串的一部分,因此如果单引号作为一个字符,可以用双引号将字符串括起来,如果单引号和双引号都使用了,可以使用转义字符\来表示。如:

'I\'m \"OK\"'

表达的内容就是I'm OK.

转义字符其他常用用法:

  • \n表示换行
  • \t代表制表符
  • \\代表\本身
>>> print('I\'m ok.')
I'm ok.
>>> print('I\'m learning\nPython.')
I'm learning
Python.
>>> print('\\\n\\')
\
\

Python为了简化还允许使用r''来表示''内的内容默认不转义:

>>> print('\\\t\\')
\   \
>>> print(r'\\\t\\')
\\\t\\

如果有很多换行,Python允许使用'''...'''格式来表示多行内容:

>>> print('''line1
... line2
... line3''')
line1
line2
line3

上面两个结合使用:

>>> print(r'''line
... line2\\\
... line3''')
line
line2\\\
line3

布尔值

在Python中布尔值只有True以及False两种值(注意大小写)。

>>> 3>2
True
>>> 2>3
False

布尔值可以用andor,和not运算。

空值

None表示,代表一个特殊的空值,不能理解为00是一个整数

变量

变量名规则,名字必须大小写英文、数字和_组合,不能数字开头:

  • a = 1,a是整数
  • t_007 = 'T_007',t_007是一个字符串
  • Answer = True,Answer是一个布尔值

在Python中=号是赋值语句,同一变量可以反复赋值,而且可以是不同类型的数据:

>>> a = 123
>>> print(a)
123
>>> a = 'ABC'
>>> print(a)
ABC

这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量的时候必须制定变量类型,如果赋值的时候类型不匹配就会报错,例如OC语言了。

理解a = 'ABC'——执行这句话的时候Python解释器做了两件事情:1.在内存中创建了一个'ABC'的字符串;2.在内存中创建了名为a的变量,并把它指向'ABC'

也可以将一个变量a赋值给另一个变量b,这个操作实际上是讲变量b指向变量a所指向的数据

>>> a = 'ABC'
>>> print(a)
ABC
>>> b = a
>>> print(b)
ABC
>>> a = 'CDE'
>>> print(b)
ABC

常量

常量就是不能改变的变量了,比如常用的数字常量π就是一个常量。在Python中,通常使用全部大写的变量名字来表示常量:

PI = 3.1415926359

可以看得出来Python根本上是没有常量这个概念的,就是说我们定义的PI仍然是一个变量。

补充:

说一下为什么Python中整数的除法是精确的。在Python中除法有两种:一种就是/:

>>> 10/3
3.3333333333333335

计算结果是浮点数,即使两个整数刚好除尽也是浮点:

>>> 9/3
3.0

还有一种就是地板除//,两个整数的除法是整数,采用去处余数的方式

>>> 10//3
3

还可以通过%运算符来求得两个数之间的余数

>>> 10 % 3
1

字符串和编码

字符串编码问题。。。。像之前的一样了,主要是ASCII、Unicode以及UTF-8编码的关系。

Python的字符串

在最新的Python3版本中,字符串是Unicode编码的,所以他支持所终语言:例如

>>> print('包含中文的str')
包含中文的str

对于单个字符编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:

>>> ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(25555)
'揓'

如果知道字符的整数编码,还可以用十六进制这样写str:

>>> '\u4e2d\u6587'
'中文'

由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应多个字节,如果想要在网络上传输,或者保存到磁盘上,就要把str变为以字节为单位的bytes

Python对nytes类型的数据用带b前桌的单引号或者双引号表示:

>>> x = b'ADC'

注意区分'ABC'b'ABC'的区别,前者是str,后者是bytes每个字符只占用一个字节。

我们还可以通过Unicode表示的str通过encode()方法可以编码为指定的bytes,例如:

>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
>>> '中文'.encode('ascii')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

纯英文的str可以用ASCII编码为bytes,内容是一样的,含有中文的str同样可以用UTF-8编码为bytes。但是如果含有中文的str无法用ASCII编码,因为中文的编码范围超过了ASCII的编码范围,Python会报错。

bytes中,无法显示为ASCII字符的字节,用\x##来显示。

反过来,如果我们从网络上或者磁盘上读取了字节流,那么读取到的数据就是bytes。要把bytes变为str,就要用decode()方法:

>>> b'ABC'.decode('ASCII')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'

要计算str包含有多少个字符,可以用len()函数:

>>> len('ABC')
3
>>> len('中文')
2

len()函数计算的是str的字符数,如果换成bytes的话,len()函数计算的就是字节数了:

>>> len(b'ABC')
3
>>> len(b'\xe4\xb8\xad\xe6\x96\x87')
6
>>> len('中文'.encode('utf-8'))
6

由于在Python中,Python的源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码的时候,就需要制定保存为UTF-8编码,当Python解释器读取到源代码的时候,就会按UTF-8编码读取,我们通常在文件开头写上这两行:

#!/usr/bin/env Python3
# -*- coding: utf-8 -*-

第一行注释是告诉Linux/OS X系统,这是一个Python的可执行程序,Windows系统会忽略这个这个注释;

第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。

格式化

最后一个问题是如何输出格式化的字符串。我们会经常输出类似亲爱的xxx你好!你xx月的话费是xx,余额是xx之类的字符串,而xxx的内容都是可变的,所以需要一种渐变的格式化字符串的方式。

>>> 'hello,%s'%'world'
'hello,world'
>>> 'Hi ,%s you have $%d.' % ('Michael',10000)
'Hi ,Michael you have $10000.'

可以看到上面的%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?就有几个变量或者只对应着,如果只有一个%?那么括号可以省略。

常见的占位符:

  • %d 整数
  • %f 浮点数
  • %s 字符串
  • %x 十六进制整数

Python基础习题(一)

1、有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?分别是多少? #先定义一个判断一个三位数是否符合条件的函数 def isMynumber(n): a=int(n%10...
  • wutong1024
  • wutong1024
  • 2016年11月03日 22:25
  • 670

Python零基础入门一

上一个寒假学习完了《Android-第一行代码》这本书,这个寒假打算好学习一下python这门语言,一方面是由于对python的爬虫比较感兴趣,另一方面也是算是搜索查找的一种工具。这次学习由于没有找到...
  • BeMoreQuiet
  • BeMoreQuiet
  • 2017年01月09日 21:21
  • 1218

有C/C++/Java基础的,学习Python一篇文章就够了

有C/C++/Java基础的,学习Python一篇文章就够了
  • qq_29591261
  • qq_29591261
  • 2017年08月11日 20:21
  • 1090

Python基础内容学习总结

Python输入与输出 数据类型 字符串编码 list与tuple 条件判断 循环 dict与set
  • GrayTerry
  • GrayTerry
  • 2016年08月26日 22:33
  • 326

程序设计基础(Python语言)”编程练习(1)

test1: 整数求和的计算 具体内容: 用户输入一个整数N,计算 (1)从1到N(包含1和N)相加之后的结果; (2)从1到N(包含1和N)之间所有奇数求和的结果; (3)将上述两个结果输出到屏幕上...
  • cnzyhzz
  • cnzyhzz
  • 2015年04月10日 19:19
  • 1481

七、PYTHON 一些基础面试题目总结

1.       Python是如何进行内存管理的? 答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制 一、对象的引用计数机制 python内部使用引用计数,来保持追踪内存...
  • alvine008
  • alvine008
  • 2014年09月12日 14:11
  • 47739

《Python程序设计基础》在亚马逊当当京东互动出版网淘宝等各大书店上架

拙作《Python程序设计基础》(董付国编著,清华大学出版社,2015年8月出版,“十一五”国家级规划教材)陆续在亚马逊、当当、京东、互动出版网、淘宝以及各大书店上架,该书侧重于Python的基本语法...
  • dongfuguo
  • dongfuguo
  • 2015年12月03日 20:36
  • 971

Python--基础程序设计

一 简单的程序1.Pyhton 会通过赋值给变量自动判定数据类型2.打印多项print(item1,item2,...,itemk) 3.程序一(计算圆的面积)radius = 20 # radius...
  • wangtao0921
  • wangtao0921
  • 2016年01月04日 10:11
  • 446

推荐一本学Python的好书《Python程序设计(第2版)》

本书最大特点是信息量大、知识点紧凑、案例丰富、实用性强。全书200多个涉及不同行业领域的实用案例,没有多余的文字、程序输出结果或软件安装截图,充分利用宝贵的篇幅来讲解尽可能多的知识,绝对物超所值。本书...
  • dongfuguo
  • dongfuguo
  • 2016年12月24日 16:21
  • 4587

Python 基础知识点

在Python中有4种类型的数——整数、长整数、浮点数和复数。 2是一个整数的例子。 长整数不过是大一些的整数。 3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-...
  • u012620150
  • u012620150
  • 2016年11月01日 10:04
  • 306
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python基础
举报原因:
原因补充:

(最多只允许输入30个字)