我的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

万恶的字符串拼接:(不适用)
  python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空间,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。
字符串格式化输出
name="NoSong"
print("I am %s"%name)

PS: 字符串是 %s;整数 %d;浮点数%f

字符串常用功能:
  • 移除空白
  • 分割
  • 长度
  • 索引
  • 切片

  移除空白:

>>> name='  no way       '    #两端存在空白字符
>>> name.strip()        #去除两端空白
'no way'            #显示
>>> name            #但name变量本身的值并没有改变
'  no way    
View Code

  分割:

name="no song no way"
b=name.split()
print(b)
View Code

  输出:

['no', 'song', 'no', 'way']

  长度:

name="no song no way"
print(len(name))
#输出
14
View Code

  索引:

name="no song no way"
print(name[0],name[3],name[4])
#输出
n s o
View Code

  切片:

name="no song no way"
print(name[1:6])
#输出
o son
View Code

4、列表:

  创建列表:

list=["alex","oldboy","nosong","noway"]
或者
list=list["a",'b','c']
View Code
  • 索引
  • 切片
  • 追加
  • 删除
  • 长度
  • 循环
  • 包含
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
View Code

 

posted @ 2017-01-09 14:23  saynobody  阅读(284)  评论(0编辑  收藏  举报