Python特点

  • python中没有变量的声明
  • 语句结束后没有分号
  • 严格要求缩进
  • 支持很长很长的大数运算(直接在Idle中输入即可)
  • 用“#”来注释

BIF:Bulit-in functions(内置函数)

  • input
>>> input(“文本”)         //把文本打印出来,并把输入的参数以字符串的形式返回。
  • print
>>> print("文本")                  //将文本打印出来
>>> print("字符串1"+"字符串2") //将字符串1和字符串2拼接输出
>>> print("字符串"* x ) //将字符串打印x次
  • if else:if else语句后面要加冒号“:”
>>> if 条件 :           //条件成立后执行冒号后带有缩进的语句
语句1
语句2
>>> else: //同理
语句1
语句2

冒号之后带有缩进的语句都属于if条件成立后(else)所要执行的语句,说明了缩进的严格要求

  • BIF查询
>>> dir(__builtins__)       //查询python中所有的BIF
>>> help(BIF名字) //查询BIF功能

变量


  • 变量命名时严格区分大小写
  • 变量不用定义,直接使用
  • 变量类型和C语言差不多
  • 获取变量类型
type(数据)                     //返回数据的类型
  • 数据类型比较
isinstance(数据1,数据类型)     //型相同返回True,否则False
isinstance(a,int) //判断数据a是否为整形

字符串型

  • 要创建字符串,就要在字符两边加上双引号或者单引号
  • 如果字符串中出现了单引号或者双引号怎么办?
  • 使用转义符号“\”,对字符串中的引号进行转义。

eg:打印Let's go

>>> 'Let's go'      //我们输入  "Let's go" 会报错。

现在我们用转义字符"\",对引号进行转义。

>>> 'Let\'s go'

成功啦!

原始字符串

既然转义字符"\",这么好用不如我们来把它打印出来吧哈哈。

eg:打印'C:now'。(打印文件夹路径)

  • 方法1

    • 这有什么难的,直接打印不就好了吗。
    >>> str = 'C\:now'
    >>> str

    • 它的显示是正常的。但是我们如果用print,效果就会改变了
    >>> print(str)

    • 我们会发现:编译器把字符串中的'\n',识别成了换行。
  • 方法2:用反斜杠对自身进行转义

    >>> str = 'C:\\now'
    
    

    • 一切正常
    • 但是如果一个字符串有很多反斜杠str = 'C:\Program Files\Intel\WiFi\Help'
    • 这种情况我们如果一个个的去对反斜杠进行转义会很麻烦。
    • 这时候原始字符串就派上了用场,它的使用很简单。只需在字符串前面加一个'r'即可。
    >>> str = r'C:\Program Files\Intel\WiFi\Help'
    >>> str

    • 编译器会对每一个反斜杠自动转义,是不是很方便
    • 注意事项:使用原始字符串时最后一个字符不要是反斜杠。
    >>> str = r'C:\Program Files\Intel\WiFi\Help\'
    >>> str

    • 系统报错

长字符串

  • 如果我们想输出一段长的字符串,比如:

我如果爱你——
  绝不像攀援的凌霄花,
  借你的高枝炫耀自己:
  我如果爱你——
  绝不学痴情的鸟儿,
  为绿荫重复单调的歌曲;
  也不止像泉源,
  常年送来清凉的慰籍;
  也不止像险峰,增加你的高度,衬托你的威仪。
  • 可以用三个引号
str = """我如果爱你——
  绝不像攀援的凌霄花,
  借你的高枝炫耀自己:
  我如果爱你——
  绝不学痴情的鸟儿,
  为绿荫重复单调的歌曲;
  也不止像泉源,
  常年送来清凉的慰籍;
  也不止像险峰,增加你的高度,衬托你的威仪。"""

编码问题

  • 编码方式
  • ASCII:8bit,一个字节,表示数目127,非常局限。
  • Unicode:16bit,通常两个字节,基本可以表示所有语言。
  • UTF-8:因为Unicode存英文会浪费空间,所以UTF-8应运而生,UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。
  • python中采用Unicode编码,也就是说python支持多种语言。
  • 对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:
>>> ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(25991)
'文'

格式化

  • 一个常见的问题是如何输出格式化的字符串。我们经常会输出类似'亲爱的xxx你好!你xx月的话费是xx,余额是xx'之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。
  • 在Python中,采用的格式化方式和C语言是一致的,用%实现,举例如下:
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
  • %运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。
  • 有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%
>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'

bytes类型


  • 由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。
  • Python对bytes类型的数据用带b前缀的单引号或双引号表示:
x = b'ABC'
  • 要注意区分'ABC''bABC',尽管他们显示相同。前者是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')
'中文'
  • 如果bytes中包含无法解码的字节,decode()方法会报错:
>>> b'\xe4\xb8\xad\xff'.decode('utf-8')
Traceback (most recent call last):
...
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 3: invalid start byte
  • 如果bytes中只有一小部分无效的字节,可以传入errors='ignore'忽略错误的字节:
>>> b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')
'中'
  • len()函数计算的是str的字符数,如果换成byteslen()函数就计算字节数
>>> len(b'ABC')
3
>>> len(b'\xe4\xb8\xad\xe6\x96\x87')
6
>>> len('中文'.encode('utf-8'))
6

Python 字符串与基本语句的更多相关文章

  1. 详解Python中的循环语句的用法

    一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...

  2. 【C++实现python字符串函数库】二:字符串匹配函数startswith与endswith

    [C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...

  3. python学习笔记:python字符串

    二.python字符串操作符 1. 对象标准类型操作符 Python对象的标准类型操作符一共就三种:对象值的比较.对象身份的比较.布尔类型.其中对象值的比较主要是大于.小于.不等于等的数学比较符:对象 ...

  4. python 字符串探讨

    本文内容基于python3 几乎所有有用的程序都会涉及到某些文本处理,不管是解析数据还是产生输出.字符串的学习是重点中的重点,这一节将重点关注文本的操作处理,比如提取字符串,搜索,替换以及解析等.大部 ...

  5. Python 安装、循环语句、数据类型(一)

    一.关于版本的选择 Should i use Python 2 or Python 3 for my development activity?转载自Python官网 Short version: P ...

  6. Python数据结构与循环语句

    # Python数据结构与循环语句:   首先编程是一项技能,类似跑步,期初不必在意细节,能使用起来就行,等学的游刃有余了再回过头来关注细节问题也不迟.  关于买书: 学会python之后,才需要买书 ...

  7. 关于python字符串基本操作

    python字符串基本操作,比如字符串的替换.删除.截取.复制.连接.分割等.都是一些关于字符串的一些方法.下面来列举一些,相信对学习python还是有些帮助的. 1.去除空格--strp(): &g ...

  8. 一文了解Python中的判断语句

    判断(if)语句 目标 开发中的应用场景 if 语句体验 if 语句进阶 综合应用 01. 开发中的应用场景 生活中的判断几乎是无所不在的,我们每天都在做各种各样的选择,如果这样?如果那样?…… 程序 ...

  9. Python字符串与容器

    []运算符是Python中访问容器元素和切片的运算符 []有正向和反向两种下标,正向下标从0开始,向后递增: 反向下标以-1表示最后一个元素,-2表示倒数第二个字符,向前递减. []不仅可以访问单个元 ...

随机推荐

  1. Python豆瓣源

    pip install -i https://pypi.doubanio.com/simple/ xxxx

  2. Linux上搭建svn资源库

    一.安装 centos上安装 使用命令svn  --version查看是否安装过svn: 如果出现  bash: svn: command not found  则显示没有安装 可以使用 yum in ...

  3. 【Android】添加依赖包

    貌似好像不知一种方法,以后有时间再研究,下面是其中的一种方法

  4. 观看杨老师(杨旭)Asp.Net Core MVC入门教程记录

    观看杨老师(杨旭)Asp.Net Core MVC入门教程记录 ASP.NET Core MVC入门 Asp.Net Core启动和配置 Program类,Main方法 Startup类 依赖注入,I ...

  5. Noip 2011 Day 1 & Day 2

    Day 1   >>> T1   >> 水题一道 . 我们只需要 for 一遍 , 由于地毯是从下往上铺的 , 我们只需要记录该位置最上面的地毯的编号 , 每一次在当前地 ...

  6. vuetify.js框架 下拉框数据改变DOM原数据未清除

    今天遇到一个奇怪的bug 需求很简单,就是将“引擎能力”下拉框选中的值作为筛选条件传入到“样本类型”下拉框中,默认“样本类型”下拉框显示所有样本类型 看图: 如图所示,功能很简单. 其实还是对vuet ...

  7. python 函数定义顺序

    #!/usr/bin/python # Hello World def order(): print("haha") print('Hello World!') order()

  8. 「日常训练」Regular Bridge(Codeforces Round 306 Div.2 D)

    题意与分析 图论基础+思维题. 代码 #include <bits/stdc++.h> #define MP make_pair #define PB emplace_back #defi ...

  9. PHP使用Redis消息队列

    1.redis安装 参考:菜鸟教程http://www.runoob.com/redis/redis-install.html 2.安装php的redis扩展 1)phpinfo()查看php版本信息 ...

  10. Katalon 学习笔记(一)

      工具介绍: Katalon Studio是一个能提供一整套功能来实现Web,API和Mobile的全自动测试解决方案的自动化测试平台.Katalon Studio构建于开源Selenium和App ...