Python基础

Python 的特点

Python 崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。

与 Java 和 C++ 这些语言相比,Python 最大的两个特点是:

  • 语句结束不用分号“;”。
  • 代码块用缩进来控制,而不用大括号“{}”。

基本语法

数据类型

Python 是一种弱类型的语言,变量的定义不需要在前面加类型说明,而且不同类型之间可以方便地相互转换。Python 有五个标准的数据类型:

  • Numbers(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)

Python 支持四种不同的数字类型:int(有符号整型)、long(长整型)、float(浮点型)、complex(复数)。

每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

age = 18        # int
weight = 62.51  # float
name = "Tony"    # string
print("age:", age)
print("weight:", weight)
print("name:", name)
# 变量的类型可以直接改变
age = name
print("age:", age)
 
a = b = c = 5
# a,b,c三个变量指向相同的内存空间,具有相同的值
print("a:", a, "b:", b, "c:", c)
print("id(a):", id(a), "id(b):", id(b), "id(c):", id(c))

#运行结果
age: 18
weight: 62.51
name: Tony
age: Tony
a: 5 b: 5 c: 5
id(a): 1457772400 id(b): 1457772400 id(c): 1457772400

常用容器

List(列表)

List(列表)是 Python 中使用最频繁的数据类型,用 [ ] 标识

一个 List 中还可以同时包含不同类型的数据,支持字符、数字、字符串,甚至可以包含列表(即嵌套)。

  • 列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。
  • 加号(+)是列表连接运算符,星号(*)是重复操作
list = ['Thomson', 78, 12.58, 'Sunny', 180.2]
tinylist = [123, 'Tony']
print(list)             # 输出完整列表
print(list[0])          # 输出列表的第一个元素
print(list[1:3])          # 输出第二个至第三个元素
print(list[2:])          # 输出从第三个开始至列表末尾的所有元素
print(tinylist * 2)      # 输出列表两次
print(list + tinylist)  # 打印组合的列表
list[1] = 100            # 修改第二个元素的值
print(list)              # 输出完整列表
list.append("added data")
print(list)              # 输出增加后的列表

#运行结果
['Thomson', 78, 12.58, 'Sunny', 180.2]
Thomson
[78, 12.58]
[12.58, 'Sunny', 180.2]
[123, 'Tony', 123, 'Tony']
['Thomson', 78, 12.58, 'Sunny', 180.2, 123, 'Tony']
['Thomson', 100, 12.58, 'Sunny', 180.2]
['Thomson', 100, 12.58, 'Sunny', 180.2, 'added data']

Tuple(元组)

Tuple(元组)是另一个数据类型,元组用“()”标识,内部元素用逗号隔开。元组不能二次赋值,相当于只读列表,用法与 List 类似。Tuple 相当于 Java 中的 final 数组,C++ 中的 const 数组

tuple = ('Thomson', 78, 12.58, 'Sunny', 180.2)
tinytuple = (123, 'Tony')
print(tuple)              # 输出完整元组
print(tuple[0])          # 输出元组的第一个元素
print(tuple[1:3])          # 输出第二个至第三个的元素
print(tuple[2:])          # 输出从第三个开始至列表末尾的所有元素
print(tinytuple * 2)      # 输出元组两次
print(tuple + tinytuple)# 打印组合的元组
# tuple[1] = 100         # 不能修改元组内的元素

#运行结果
('Thomson', 78, 12.58, 'Sunny', 180.2)
Thomson
(78, 12.58)
(12.58, 'Sunny', 180.2)
(123, 'Tony', 123, 'Tony')
('Thomson', 78, 12.58, 'Sunny', 180.2, 123, 'Tony')

Dictionary(字典)

Dictionary(字典)是 Python 中除列表以外最灵活的内置数据结构类型。字典用“{ }”标识,字典由索引(key)和它对应的值 value 组成,相当于 Java 和 C++ 中的 Map。

列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'Tony', 'age': 24, 'height': 177}
print(dict['one'])      # 输出键为'one' 的值
print(dict[2])          # 输出键为 2 的值
print(tinydict)         # 输出完整的字典
print(tinydict.keys())  # 输出所有键
print(tinydict.values())# 输出所有值

#运行结果
This is one
This is two
{'name': 'Tony', 'age': 24, 'height': 177}
dict_keys(['name', 'age', 'height'])
dict_values(['Tony', 24, 177])

类的定义

类的帮助信息可以通过 ClassName.__doc__ 查看,class_suite 由类成员,方法,数据属性组成

class Test:
    "这是一个测试类"
 
    def __init__(self):
        self.__ivalue = 5
 
    def getvalue(self):
        return self.__ivalue

访问权限:

  • __foo__:定义的是特殊方法,一般是系统定义名字,类似 __init__() 之类的。
  • _foo:以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *。
  • __foo:双下划线的表示的是私有类型(private)的变量,只能是允许这个类本身进行访问了。

 类的继承:

class 派生类名(基类名):
    类体

Python 中继承中的一些特点:

  • 在继承中基类的构造(__init__() 方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用。
  • 在调用基类的方法时,需要使用 super() 前缀。
  • Python 总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找(先在本类中查找调用的方法,找不到才去基类中找)。

如果在继承元组中列了一个以上的类,那么它就被称作“多重继承”。

文件遍历


#roots代表需要遍历的根文件夹
#root表示正在遍历的文件夹的名字(根/子)
#dirs记录正在遍历的文件夹下的子文件夹集合(不包括子文件夹中的)
#files记录正在遍历的文件夹中的文件集合(不包括子文件夹中的)

for root,dirs,files in os.walk(roots):
    #遍历所有的子文件夹
    for dir in dirs:
        sub_dir=os.path.join(root,dir )
    #遍历所有的文件
    for file in files:
        file_path=os.path.join(root,file)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值