1 命令行模式和 Python 交互模式
看到类似cmd 窗口 是在 Windows提供的命令行模式:
在命令行模式下,可以执行 python 进入 Python 交互式环境,也可以执
行 python hello.py 运行一个 .py 文件。
如:
Python 交互式环境会把每一行 Python代码的结
果自动打印出来,但是,直接运行 Python 代码却不会
2 数据类型和变量
变量定义 :会变的量,作用是保存数据
请务必牢记下述有关变量的规则。
q 1 变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打 头,例如,可将变量命名为message_1,但不能将其命名为1_message。
q 2 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message 可行,但变量名greeting message会引发错误。
q 3 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,
q 4 变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length 比length_of_persons_name好。
q 5 慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。
要创建良好的变量名,需要经过一定的实践,在程序复杂而有趣时尤其如此。随着你编写的
程序越来越多,并开始阅读别人编写的代码,将越来越善于创建有意义的变量名
数据类型
1、字符串
2、布尔类型
3、整数
4、浮点数
5、数字
6、列表
7、元组
8、字典
9、日期
10 , 空值
11 ,自定义数据类型
先看布尔类型 整数 浮点数 数字 空值 字符串 其他的放置后面
数据类型判断
isinstance(判断参数,类型) #可以判断继承关系的类型
type(查看数据类型)
数据类型转换
数字类型和字符串之间转换
1 int函数能够
(1)把符合数学格式的数字型字符串转换成整数
(2)把浮点数转换成整数,但是只是简单的取整,而非四舍五入。
2 float函数将整数和字符串转换成浮点数
3 str函数将数字转换成字符
3 输入和输出
输出 : print() 在括号中加上字符串,就可以向屏幕上输出指定的文字。比
如输出 'hello, world'
输入 : Python 提供了一个input(),可以让用户输入字符串,并存放到一个变量里
常量
所谓常量就是不能变的变量 Python 中,通常用全部大写的变量名表示常量:
PI = 3.14159265359
Python 根本没有任何机制保证PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法
字符串常见的方法和字符编码
字符串比较特殊的是还有一个编码问题 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理
ASCII 编码只有 127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号
但是不可以保存中文中国制定了 GB2312编码,用来把中文编进去。这样一来每个国家都有自己的编码,结果就是,在多语言混合的文本中,显示出来会有乱码
因此,Unicode应运而生。Unicode把所有语言都统一到一套编码里,
Utf-8
Unicode 编码转化为“可变长编码”
的 UTF-8 编码。UTF-8 编码把一个Unicode字符根据不同的数字大小编
码成 1-6 个字节,常用的英文字母被编码成 1 个字节,汉字通常是3个
字节,只有很生僻的字符才会被编码成 4-6个字节。如果你要传输的文
本包含大量英文字符,用UTF-8编码就能节省空间
Python中提供了
ord() 函数获取字符的整数表示,
chr() 函数把编码转换为对应的字符如:
ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(25991)
'文'
字符转换字节
一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把
str 变为以字节为单位的bytes。Python对bytes类型的数据用带b前缀的单引号或双引号表示如:
x = b'ABC'
要注意区分 '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 变为 str,就需要用decode()方法:
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文
str中常见的函数
1 len() 函数计算的是 str的字符数,如果换成bytes,len()函数就计算字
节数:
>>> len(b'ABC')
3
>>> len(b'\xe4\xb8\xad\xe6\x96\x87')
6
>>> len('中文'.encode('utf-8'))
6
可见,1 个中文字符经过 UTF-8 编码后通常会占用3个字节,而1个英
文字符只占用 1 个字节
2 title() 以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写
name = "ada lovelace"
print(name.title())
结果是:Ada Lovelace
3 upper() 转换成大写 lower()转换成小写
如
name = "Ada Lovelace"
print(name.upper())
print(name.lower())
结果是:
ADA LOVELACE
ada lovelace
4 合并字符串 Python使用加号(+)来合并字符串
first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
print(full_name)
结果是
ada lovelace
5 rstrip() 去字符串后面空格(空白)
lstrip() 前
strip() 两端
6 count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置
如:
str="www.runoob.com"
sub='o'
print ("str.count('o') : ", str.count(sub))
结果
str.count('o') : 3
7 find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1
str1 = "Runoob example....wow!!!"
str2 = "exam";
print (str1.find(str2))
print (str1.find(str2, 5))
print (str1.find(str2, 10))
结果如下:
7
7
-1
8 index() 方法检测字符串中是否包含子字符串 str,如果指定beg(开始) 和end(结束) 范围,则检查是否包含在指定范围内,该方法与python find()方法一样,只不过如果str不在string中会报一个异常
9 join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串
s1 = "-"
s2 = ""
seq = ("r", "u", "n", "o", "o", "b") # 字符串序列
print (s1.join( seq ))
print (s2.join( seq ))
结果如下:
r-u-n-o-o-b
Runoob
10 replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次
str = "www.w3cschool.cc"
print ("菜鸟教程新地址:", str)
print ("菜鸟教程新地址:", str.replace("w3cschool.cc", "runoob.com"))
str = "this is string example....wow!!!"
print (str.replace("is", "was", 3))
结果如下:
菜鸟教程新地址: www.w3cschool.cc
菜鸟教程新地址: www.runoob.com
thwas was string example....wow!!!
11 split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串
str = "this is string example....wow!!!"
print (str.split( ))
print (str.split('i',1))
print (str.split('w'))
结果如下:
['this', 'is', 'string', 'example....wow!!!']
['th', 's is string example....wow!!!']
['this is string example....', 'o', '!!!']