Python基础系列----语法、数据类型、变量、编码
1.基本语法
Python的语法比较简单,采用缩进的方式。
# print absolute value of an integer:
a = 100
if a >= 0:
print(a)
else:
print(-a)
在上面代码中,以‘# ’是注释的标识符,可以记录当前代码所代表的意义,解释器会自动忽略这部分内容。
当语句以‘:’结尾时,缩进语句视为代码块。
在Python中,通常我们以4个空格的缩进来进行区分。由于个人习惯原因,可以在每句结束之后加一个‘;’号。通常在Python中,默认以换行为新的一行,若想在一行输入多句语句,一定要加‘;’,否则报错。由于Python采用缩进的语法,在你复制,粘贴语句时,一定要注意,重新检查当前代码的缩进格式。IDE很难格式化代码。
注意:在Python中,对大小写十分敏感,如果大小写错误,会报错。
2.数据类型
数据类型:一个值的集合以及定义在这个值集上的一组操作
Python提供的基本数据类型主要有:布尔类型、整型、浮点型、字符串、空值、列表、元组、集合、字典等等。在这里主要介绍布尔类型、整型、浮点型、字符串、空值,其他的后续介绍。
2.1布尔类型
在Python中,None、任何数值中的0、空字符串、空元组、空列表、空字典都被当做false,还要自定义的 方法返回0或者false,则其实例当做False,其他对象均为Ture。
>>>True
True
>>>False
False
>>>1>0
True
>>>1>2
False
布尔类型只有两个值,不是true,就是false。布尔值可以进行运算,主要包括and,or,not
a.and 与运算,只有所有都为true,返回结果为true
b.or 或运算,只要其中有一个为true,返回结果为true
c.not 是非运算,它是一个但亩运算符,把true变为false,false变为true
>>>True and True
True
>>>True and False
False
>>>False and False
False >>>True or False or True
True >>>not True
False
>>>not False
True
2.2整形
在Python内部对整数的处理分为普通整数和长整数,普通整数长度为机器位长,通常都是32位,超过这个范围的整数就自动当长整数处理,而长整数的范围几乎完全没限制。例如:1,2,-1,1000000
2.3浮点型
Python的浮点数就是数学中的小数,类似C#语言中的double。在运算中,整数与浮点数运算的结果是浮点数,浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是相等的。整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差。
2.4字符串
Python字符串即可以用单引号也可以用双引号括起来,甚至还可以用三引号括起来。例如:‘abc’,"abc",'''I'm OK'''等。''或""本身只是一种表示方式,不是字符串的一部分。
如果字符串内部既包含'又包含",可以使用转义符\来标识。转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\。
如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义.如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容
2.5空值
空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
3.变量
变量名必须是大小写英文、数字和_的组合,且不能用数字开头.变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错
a = 'ABC'
b = a
a = 'XYZ'
print(b)
执行a = 'ABC',解释器创建了字符串'ABC'和变量a,并把a指向'ABC':
执行b = a,解释器创建了变量b,并把b指向a指向的字符串'ABC':
执行a = 'XYZ',解释器创建了字符串'XYZ',并把a的指向改为'XYZ',但b并没有更改:
最后打印变量b,输出值为‘ABC’。
4.编码
在创建Python文件时,有些IDE会在文件最上方有这样一段代码
#-*- coding: UTF-8 -*-
这段代码表示,当前文件以utf-8的格式编码。有时,在浏览网页,或者打开文件时,发现全部是一堆看不懂的字符串,这就是乱码,也是由文件编码导致的。由于每个国家的语言不同,各国有各国的标准,如果多种语言的文本混合其中,这时就会导致乱码。因此为了将所有语言统一到一套编码规范中,产生了Unicode,这样就不会再存在乱码的情况了。 Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。在Python中,我们通常都需要指定当前文件具体的一种编码格式,避免后期产品乱码的情况。
4.1ASCII编码和Unicode编码的区别:
ASCII编码是1个字节,而Unicode编码通常是2个字节。
字母A用ASCII编码是十进制的65,二进制的01000001;
字符0用ASCII编码是十进制的48,二进制的00110000,注意字符'0'和整数0是不同的;
汉字中已经超出了ASCII编码的范围,用Unicode编码是十进制的20013,二进制的01001110 00101101。
如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。 所以,本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间
字符 | ASCII | Unicode | UTF-8 |
---|---|---|---|
A | 01000001 | 00000000 01000001 | 01000001 |
中 | x | 01001110 00101101 | 11100100 10111000 10101101 |
计算机系统通用的字符编码工作方式: 在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
在Python中, ord()函数获取字符的整数表示; chr()函数把编码转换为对应的字符。
>>> ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(25991)
'文'
由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。对bytes类型的数据用带b前缀的单引号或双引号表示:x = b'ABC'。要注意区分'ABC'和b'ABC',前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节
以Unicode表示的str通过encode()方法可以编码为指定的bytes。要把bytes变为str,就需要用decode()方法
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行。#!/usr/bin/env python3# -*- coding: utf-8 -*-。
第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
4.2格式化
采用的格式化方式和C语言是一致的,用%实现。
>>> 'Hello, %s' % 'world''Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略
常见占位符:%d(整数),%f(浮点数),%s(字符串),%x(十六进制整数)
格式化整数和浮点数还可以指定是否补0和整数与小数的位数
>>> '%2d-%02d' % (3, 1)
' 3-01'>>> '%.2f' % 3.1415926'3.14'
有些时候,字符串里面的%
是一个普通字符,这个时候就需要转义,用%%来表示一个%
>>> 'growth rate: %d %%' % 7'growth rate: 7 %'
5.写在最后
以上就是Python的一些基本语法、数据类型、编码知识,有存在错误或不足的地方,及时沟通改正。下篇的时间可能要稍微朝后推迟了,周末需要去做个身体检查,也希望大家的身体棒棒的!
Python基础系列----语法、数据类型、变量、编码的更多相关文章
- python基础之01数据类型-变量-运算浅解
python的数据类型 1 数字 数字分为整型(int),长整型(long),浮点型(float),复数(complex) 整型较为常用的功能: >>> a=-4 >> ...
- python基础入门语法和变量类型(二)
列表 列表是 Python 中使用最频繁的数据类型,它可以完成大多数集合类的数据结构实现,可以包含不同类型的元素,包括数字.字符串,甚至列表(也就是所谓的嵌套). 和字符串一样,可以通过索引值或者切片 ...
- python基础系列教程——Python中的编码问题,中文乱码问题
python基础系列教程——Python中的编码问题,中文乱码问题 如果不声明编码,则中文会报错,即使是注释也会报错. # -*- coding: UTF-8 -*- 或者 #coding=utf-8 ...
- 一. Python基础(1)--语法
一. Python基础(1)--语法 1. 应用程序 1.1 什么是计算机(Computer)? 组成 ①运算器 arithmetic unit; ※ Arithmetic unit and cont ...
- 五. Python基础(5)--语法
五. Python基础(5)--语法 1 ● break结束的是它所在的循环体, continue是让它所在的循环体继续循环 # 打印: 1 10 2 10 3 10 4 10 5 10 6 10 7 ...
- 四. Python基础(4)--语法
四. Python基础(4)--语法 1 ● 比较几种实现循环的代码 i = 1 sum = 0 while i <= 10: # 循环10-1+1=10次 sum += i i ...
- 二. Python基础(2)--语法
二. Python基础(2)--语法 1.实现一个简单的登录系统 '''# 形式1 n = 1 while n < 4: name = input("请输入姓名\n" ...
- python基础系列教程——Python3.x标准模块库目录
python基础系列教程——Python3.x标准模块库目录 文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata ...
- 六. Python基础(6)--语法
六. Python基础(6)--语法 1 ● Python3中, Unicode转字节的方法 print(bytes("李泉", encoding = 'utf-8')) prin ...
随机推荐
- Train-net流程
- UVA10766:Organising the Organisation(生成树计数)
Organising the Organisation 题目链接:https://vjudge.net/problem/UVA-10766 Description: I am the chief of ...
- bzoj1026 windy数 数位DP
windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B,总共有多少个windy数? Input 包含两个整数,A ...
- Linux下实现文档在线浏览
使用php实现百度文库功能,网上搜索到的方案,实现doc转pdf,pdf转swf,然后显示出来. 这里简单的记录下,[doc转pdf,pdf转swf]两个功能的搭建流程. doc转pdf 使用到下列程 ...
- jedis在线文档网址
jedis在线文档网址:http://tool.oschina.net/apidocs/apidoc?api=jedis-2.1.0
- 其他:OI竞赛中的文件操作
本文介绍三种方法进行文件输入输出,都非常实用 第一种方法是采用重定向的形式进行输入输出,很方便 freopen("input.txt","r",stdin); ...
- Codeforces Round #380 (Div. 2)/729E Subordinates 贪心
There are n workers in a company, each of them has a unique id from 1 to n. Exaclty one of them is a ...
- netcore 使用log4net
1.Install Install-Package log4net 2. conifg 創建文件:log4net.config <?xml version="1.0" enc ...
- Item 2---遇到构造器具有多个参数时,要考虑用构建器;Builder模式
问题,面对这种一个构造器具备多个参数的问题,现有的做法是使用重叠构造器的方式,该方式存在的问题: public class NutritionFacts { private final int ser ...
- python keras YOLOv3实现目标检测
1.连接 https://www.jianshu.com/p/3943be47fe84