再讲新知识之前,先将一些之前没提的东西再介绍一下:

(1)

命令行模式

在Windows开始菜单选择“命令提示符”(或者是在搜索栏中输入“cmd”),就进入到命令行模式,它的提示符类似C:\>

Python交互模式

在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>

 

在Python交互模式下输入exit()并回车,就退出了Python交互模式,并回到命令行模式:

也可以直接通过开始菜单选择Python (command line)菜单项,直接进入Python交互模式,但是输入exit()后窗口会直接关闭,不会回到命令行模式

python命令行包 python中的命令行在哪_Python

在命令行模式下,可以执行python进入Python交互式环境,也可以执行python hello.py运行一个.py文件。

执行一个.py文件只能在命令行模式执行。如果敲一个命令python hello.py,就会出现bug,错误提示No such file or directory说明这个hello.py在当前目录找不到,必须先把当前目录切换到hello.py所在的目录下,才能正常执行:此外,在命令行模式运行.py文件和在Python交互式环境下直接运行Python代码有所不同。Python交互式环境会把每一行Python代码的结果自动打印出来,但是,直接运行Python代码却不会。

(2)绝对不能用Word和Windows自带的记事本,选择Notepad++免费试用有中文界面。

安装好文本编辑器后,输入以下代码:

print('hello, world')

注意print前面不要有任何空格。然后,选择一个目录,例如C:\chaochao,把文件保存为hello.py,就可以打开命令行窗口,把当前目录切换到hello.py所在目录,就可以运行这个程序了:(此外,文件名只能是英文字母、数字和下划线的组合。)

C:\chaochao>python hello.py
hello, world

(3)以#开头的语句是注释,注释是给人看的,可以是任意内容,解释器会忽略掉注释。其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块。
(4)
#
:

>>> print(r'''hello,\nword''')
hello,\nword

这个情况比较特殊,还是要注意的

1.一些常用的算术运算符的简写:

加减乘除都可以这样操作:

>>> a=8
>>> a+=3
>>> a
11
>>> a-=4       #表示减法运算
>>> a
7
>>> a*=5         #表示乘法运算
>>> a
35
>>> a/=7
>>> a
5.0

python的除法跟C++的语法规则是不一样的(答案返回的时候是浮点数)

打开IDLE自己来操作一波,看是不是这个情况

>>> 10//8
1
>>> 3.0//2.0
1.0

这是取整数的

>>> 5%2
1

上面的是取余运算
>>> 3**2
9

这是求幂运算,很简便

>>> -3*2+5/2
-3.5

混合运算的时候要根据优先级(先乘除后加减,当然这是在没有括号的情况下的)

>>> -3**2
-9
>>> -(3**2)
-9
>>> 3**(-2)
0.1111111111111111

这里 需要注意的是:幂运算的左边的优先级高于右边

 

而逻辑运算符and,or,not的用法跟别的语言还是一样的(运算的时候都是相当于利用bool变量来进行操作)

>>> (2<3)and(3>7)
False
>>> not (4<6)
False
>>> (1<8)or(34>98)
True

and操作符:全真则真,一假则假

or操作符:一真则真,全假才假

not操作符:取对立的运算结果

2.我们学会了1输出函数print(),那与之对应的输入函数呢?

 Python提供了一个input(),可以让用户输入字符串,并存放到一个变量里

>>> name = input()
chaochao

当你输入name = input()并按下回车后,Python交互式命令行就在等待你的输入了。这时,你可以输入任意字符,然后按回车后完成输入。输入完成后,不会有任何提示,Python交互式命令行又回到>>>状态了。那我们刚才输入的内容到哪去了?答案是存放到name变量里了。可以直接输入name查看变量内容:

>>> name
'chaochao'

要打印出name变量的内容,除了直接写name然后按回车外,还可以用print()函数:

>>> print(name)
chaochao

input()可以让你显示一个字符串来提示用户,因此我们可以添加一些语句来提醒用户输入名字:

>>> name = input("请输入您的名字")
请输入您的名字
>>> name = input("please enter your name:")
please enter your name:Mark
>>> print('Hello',name)
Hello Mark

 

***

注意:Python的整数没有大小限制,而某些语言的整数根据其存储长度是有大小限制的,例如Java对32位整数的范围限制在-2147483648-2147483647

Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)

3.字符串和编码

字符编码:最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节

 

但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去,Unicode把所有语言都统一到一套编码里

现在,捋一捋ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节。

字母A用ASCII编码是十进制的65,二进制的01000001

字符0用ASCII编码是十进制的48,二进制的00110000,注意字符'0'和整数0是不同的;

汉字已经超出了ASCII编码的范围,用Unicode编码是十进制的20013,二进制的01001110 00101101

你可以猜测,如果把ASCII编码的A用Unicode编码,只需要在前面补0就可以,因此,A的Unicode编码是00000000 01000001

新的问题又出现了:如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。

所以,本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间,ASCII编码实际上可以被看成是UTF-8编码的一部分

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

用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:所以你看到很多网页的源码上会有类似<meta charset="UTF-8" />的信息,表示该网页正是用的UTF-8编码

 

 

python的字符串:

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

>>> ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(34567)
'蜇'

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

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

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

好吧,今天就这么多啦!没说完的下一次再说,谢谢大家!