用python做归结演绎推理_python基础归结

本文介绍了Python的基础知识,包括程序格式、Unicode与UTF-8编码、除法运算、布尔值、空值、常量、bytes类型、字符串与bytes的转换、输入输出、格式化输出、数组与元组、条件判断、循环、字典、集合、切片、迭代和生成器。通过实例展示了Python编程中的常见操作,帮助读者理解Python的基本语法和数据结构。
摘要由CSDN通过智能技术生成

#!/usr/bin/env python3#-*- encoding: utf-8 -*-

print('Hello world')print('中国心')

python程序本质是脚本语言,与shell相同,都是顺序逐条语句执行,语句执行完成后退出。没有main函数。

00.python程序格式

#开头的语句是注释,其他每一行都是一个语句。

语句以冒号(:)结尾时,缩进的语句视为代码块(没有C语言中{}区分代码块)。

约定俗称,4个空格缩进,Tab或空格均可以,但要保持一致。

python大小写敏感。

0.unicode&utf-8

在计算机内存中,统一使用unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为utf-8编码。

用记事本编辑的时候,从文件读取的utf-8字符被转换为unicode字符到内存里,编码完成保存时再把unicode转换为utf-8保存到文件。

浏览网页时,服务器会把动态生成的unicode内容转换为utf-8再传输给浏览器,所以会看到许多网页的源码上会有类似的信息,表示该网页正是用的utf-8编码。

1. 除法

Python中有两种除法,一种除法是/,/除法计算结果永远是浮点数。

地板除//,计算结果永远是整数。

余数运算%。

无论整数做//除法还是取余数,结果永远是整数,所以,整数运算结果永远是精确的。

2. 布尔值类型

布尔值类型只有Truce、False两种值(注意Python大小写敏感)。

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

3. 空值

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

4. 常量

在Python中,通常用全部大写的变量名表示常量。

5. bytes类型

Python对bytes类型的数据用带b前缀的单引号或双引号表示:

x=b'ABC'

要注意区分'ABC'和b'ABC',前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节。

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

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

b''(b前缀):每个字节占用一个字节。print(b'A\tA') ---b'A\tA'

u''(u前缀)或无前缀:字符串默认以Unicode编码存储,可以存储中文。Unicode中每个字符占用两个字节。print(u'A\tA') ---A  A

r''(r前缀):主要解决转义字符、特殊字符问题,其中所有字符均被视为普通字符。print(r'A\tA')--A\tA

6. str和bytes转换

由于Python的字符串类型是str,在内存中以unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。以unicode表示的str通过encode()方法可以编码为指定的bytes;反过来,从网络或磁盘上读取了字节流,读取到的数据是bytes,用decode()将bytes变为str。

在操作字符串时,我们经常遇到str和bytes的互相转换。为了避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换。

>>> '中文'.encode('utf-8')

b'\xe4\xb8\xad\xe6\x96\x87'

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

>>> '33345'.encode('utf-8')

b'33345'

>>> '中8'.encode('utf-8')

b'\xe4\xb8\xad8'

>>> b'\xe4\xb8\xad8'.decode('ascii')

Traceback (most recent call last):

File"", line 1, in UnicodeDecodeError:'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)

>>> b'\xe4\xb8\xad8'.decode('utf-8')'中8'

7. 输入输出

输入用input(),输出用print()。

input()可以输入提示字符串,input()返回的数据类型是str,str不能直接和整数比较。

>>> name=input('please enter your name:')

please

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值