Python一些基础的东西1

一、开始
1、命令行模式和交互模式:
命令行模式:

交互模式:在命令行输入“Python”可以切换到交互模式,即可输入Python代码,提示符为“>>>”。在交互模式中输入exit()可退出到命令行。

在命令行下可以执行 .py文件,但是需要将目录切换到py文件所在的目录。命令行即执行 .py文件中的内容。

2、使用文本编辑器。
notepad是一个很好用的文本工具。
执行 .py文件需要在命令行下执行:

>>>python hello.py

文件名只能是英文字母、数字和下划线的组合。
如果文件没有在当前目录,需要用 cd 命令转移到文件所在目录。

3、输入输出
输出print():
可以输出多个字符用“,”隔开,并且不限制格式。

输入input:
name = input() 运行到此时,交互界面中可以输入命令,遇到回车结束输入,将输入内容保存在name中。
name = input(“内容”),即提示用户需要输入的内容。
注意:input 输入的是字符串类型,即将字符串赋值给前值。因此要进行计算和处理,需要将input的值转换为相应的格式,比如a = int(input()) ,a即为int型。

二、Python基础
1. 数据类型和变量。
整型,浮点型,字符串,布尔值(True,False)
字符串:用单引号或者双引号引起来。如果字符串同时包含双引号和单引号,那么需要用转义字符“ \ ”进行标记。
Python允许使用三引号’’’ … ’’’ 进行写多行内容。
还允许使用 r’ ’ ,表示’ ’内的字符串默认不转义。

>>> print('\\\t\\')
\       \
>>> print(r'\\\t\\')
\\\t\\

变量:
变量在程序中就是用一个变量名表示,变量名必须是大小写英文、数字和下划线的组合,且不能用数字开头。
Python中变量本身类型可以不固定,这种语言称为动态语言。

a = 123 #a是整数
print(a)
a = 'ABC' #a变为字符串
print(a)

*在写a = ‘ABC’时,Python解释器干了两件事情:
1.在内存中创建了一个’ABC’的字符串;
2.在内存中创建了一个名为a的变量,并把它指向’ABC’。

变量的指向,先生成一个新的数据,然后变量名指向到新的数据,原数据则会遗失。

  1. 字符串和编码
    a. py3中字符串是以Unicode编码的。并且提供了ord() 函数获取字符的整数信息,chr()把编码转换为相应的字符。
    由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。
    以Unicode表示的str 通过encode() 方法可以编码为指定的byte,例如
>>>‘ABC’.encode(‘ascii’)
b’ABC’
>>>’中文’.encode(‘utf-8’)
b’   ’

ASCII编码针对英文进行,中文编码范围超出其范围,所以需要用Unicode编码,而utf-8编码为变长码,相对Unicode节省空间。
Python文件前加备注# -- coding: utf-8 -- 提示Python解释器,按照UTF-8编码读取源码,否则中文可能会乱码。
b. 格式化输出
同c语言一样使用%
‘Hi, %s, you have $%d.’ % (‘Michael’, 1000000)

占位符 替换内容
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}、{1}……。

>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
'Hello, 小明, 成绩提升了 17.1%'
  1. list和tuple
    a. list
    list是一种数据类型列表,是一种有序的集合。随时可以添加和删除其中的元素。
    classmate = [‘mic’ , ’jj’ , ’sandy’] #每个元素都是string
    列表元素下标索引从0开始。
>>>classmate[0]mic

如果索引越界,则会报错 IndexError 。最后一个元素的索引为 len(classmate)-1,也可以直接用 -1 做索引。

>>> classmate.append(‘jay’)

append方法在列表中扩展元素,只能扩展一个元素。

>>> classmate.insert(1,’jack’)

insert 方法在列表中指定位置插入元素

>>> classmate.pop(i)

pop 方法在列表中删除第i位元素,如果不填充i则删除最后一个。
也可以用索引替换其中一个元素。
list中的元素类型也可以不同,可以包括各种数据类型的元素。同样list也可以包含list,扩展成多维list。

b. tuple 元组
tuple 一旦初始化就不能再修改了。没有append,insert等方法进行修改。
tuple在定义时,里面的元素就必须被确定下来。

>>> t = (1)  #这样是定义了一个数 即按( )计算,得到 t = 1;
>>> t=(1,)  #这样的是定义了一个tulpe,得到 t = (1,)。

tuple的定义必须是用 , 来消除歧义,定义一个tuple。
tuple中元素的指向是不可改变的,但是如果tuple中如果存在list,那么list的内容可以改变,例如

>>> t = (‘aaa’, ‘bbb’, [‘111’, ‘222’])
>>> t[0]
‘aaa’
>>> t[2]
[‘111’, ’222’]
>>>t[2].append(‘333’)

则t就变成t = (‘aaa’, ‘bbb’, [‘111’, ‘222’, ‘333’])。元组中的列表元素,可以按照列表元素的方法进行修改,但是t[2]指向的还是初始化时的那个list 是不会变的,例如

>>> t[2] = [‘123’]  #将元组中的列表元素换成另一个列表,该语句会报错。。。
  1. 条件判断
    a.if语句。语句判断后要加 : ,之后即为if的语句块。
    if语句的格式和其他语言类似。但是对于input来说,由于Python的变量类型问题,需要对input的string类型变量,转换数据类型与if后的判断语句相同,否则会报错,例如:
a = int(input())
if a>60:
    print(‘pass’)
else: 
    print(‘no’)

Python中可以用连续不等号进行判别,比如

a = 20
if 10<a<30:
    print(‘woooo~’)
else:
    print(‘nooooo~’)
  1. 循环
    a. for循环
    for … in … :
    循环体
    依次把list或者tuple中的每个元素迭代出来。所以可以用 for x in [1,2,3,4,5]: 把1-5循环出来。
    可以使用range选取循环列表,以及列表中数字间隔。
range(1,5,2)        #为1 3
range(1,5)      #为 1 2 3 4

range(start, stop, step) start 和stop为从0开始的第n个数(实际数为n-1)。

b.while循环
结构和其他语言类似。

c.break,continue
break循环中可跳出。
continue 循环中跳过continue以下语句,进行下一次循环。

  1. dict和set
    a.dict字典,在其他语言中也成为map,使用‘键-值’(key-value)的存储方式。
    字典中key和一个value相对应。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']

95
除了初始化之外,还可以通过key放入新的值。
索引时如果key不存在,则会报错。于是有两种查找key是否存在的办法:
1. in
key in dict 返回值为TRUE或FALSE
2. get() 方法
dict.get(key, -1) 如果key不存在可以返回None或自己定义的值,如果存在则返回key对应value。
pop方法:使用pop(key)可以删除字典成员。
注意,字典中的数据存放和顺序是没有关系的,所以不能用索引下标进行索引。
dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。
在python中字符串和整数都是不可变的,因此可以作为key,而list是可变的,就不能用作key。

b.set:也是一组key的集合,但不储存value。由于key不能重复,所以set中不存在相同的key。
set和dict唯一的区别就是set的key没有对应的value。

s = set([1,2,3])

add()方法: s.add(4) 可以添加key
remuve()方法: s.remove(2) 删除其中一项。

c.不可变对象。
字符串,整数都是不可变对象。

a = ‘abc’

其中‘abc’是字符串对象,a是变量。字符串是不可变的,所以如果修改a的值,无论以任何操作,都是新建一个对象,然后变量a指向该对象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章