我的python之路【第一章】字符编码集,数据类型
一、第一个程序:HelloWorld
打开linux终端,创建一个文件:helloworld.py,输入:
print("Hello World!")
执行helloworl.py:
localhost:~ ]# python hello.py
Hello World!
linux中指定解释器:(在文件最上方加入)
#!/usr/bin/env python #env代表全局变量,python代表系统默认的python解释器,或者使用python3 print "hello,world"
二、变量
变量定义的规则:
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
在python解释器中,变量赋值范例:
>>> name="NoSong" >>> print(name) NoSong >>> name2="abc" >>> name2 'abc'
三、字符编码集:
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
ascill是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号
过渡阶段:ascill无法满足我们的汉字的需要,所以中国开发了GBK字符编码,有的中文Windows的缺省内码还是GBK。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536 注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
在python2.x中,执行:
#!/usr/bin/env python print "hello girl!!!"
会因为没有指定字符编码报错:
改正:
#!/usr/bin/env python # -*- coding: utf-8 -*-
print "hello girl!!!"
在python3.x中,默认的字符编码就是utf-8,所以不需要指定。
代码注释:
当行注视:# 被注释内容
多行注释:""" 被注释内容 """
四、用户输入:
赋值变量=input(“显示内容:”)
user = input("请输入用户名:") pwd = input("请输入密码:") print("用户名:%s,密码:%s"%(user,pwd))
输出:
请输入用户名:liuhao 请输入密码:123456 用户名:liuhao,密码:123456
五、字符类型:
1、数字:整型、长整型、浮点型
2、字符串:"helloworld"
3、布尔值:True\False 真\假 0\1
name="NoSong" print("I am %s"%name)
PS: 字符串是 %s;整数 %d;浮点数%f
- 移除空白
- 分割
- 长度
- 索引
- 切片
移除空白:
>>> name=' no way ' #两端存在空白字符 >>> name.strip() #去除两端空白 'no way' #显示 >>> name #但name变量本身的值并没有改变 ' no way
分割:
name="no song no way" b=name.split() print(b)
输出:
['no', 'song', 'no', 'way']
长度:
name="no song no way" print(len(name)) #输出 14
索引:
name="no song no way" print(name[0],name[3],name[4]) #输出 n s o
切片:
name="no song no way" print(name[1:6]) #输出 o son
4、列表:
创建列表:
list=["alex","oldboy","nosong","noway"] 或者 list=list["a",'b','c']
- 索引
- 切片
- 追加
- 删除
- 长度
- 循环
- 包含
list=["alex","oldboy","nosong","noway","nobody","jack"] numnber=[1,2,3,4,5,6,7,8,9] #索引 print("索引",list.index("nobody")) #切片 print("切片",numnber[1:5]) #步长 print("步长",numnber[1:8:2]) #追加 numnber.append(100) print("追加",numnber) #插入 (在下标3的位置插入444) numnber.insert(3,4444) print("插入",numnber) #长度: print("长度",len(numnber)) #循环 for i in list: #输出value print(i) for k,v in enumerate(list): #带下标输出 print(k,v) #包含: if "alex" in list: print("包含:yes")
输出:
索引 4 切片 [2, 3, 4, 5] 步长 [2, 4, 6, 8] 追加 [1, 2, 3, 4, 5, 6, 7, 8, 9, 100] 插入 [1, 2, 3, 4444, 4, 5, 6, 7, 8, 9, 100] 长度 11 alex oldboy nosong noway nobody jack 0 alex 1 oldboy 2 nosong 3 noway 4 nobody 5 jack 包含:yes