上一次修改时间:2018-07-31 16:11:34

python基础2

1.基本数据类型

#jupyter中,shift+tab可以查看函数的帮助
#点击一次查看简略说明,点击两次查看完整说明

'''
基本数据类型:

integer 
整型(整数类型)
1
5
100

float
浮点型(小数)
0.1
3.1415
189.153

string
字符串型
"This is a string"
"123"
'123'

'''

2.基本运算符

"""
运算
+   加
-   减
*   乘
/   除
%   取余
//  取整


变量

"""
a = 1
b = 2 
c = a + b
print("a+b=",c)
print(2**4)#2的4次方
print(8/4)#除法的结果是float型
print(5/3)
print(8//4)#除法取整的结果是int型

image.png

3.while循环与for循环

condition = 1
print("while循环:")
while condition < 5:
    print(condition)
    condition += 1  #condition = condition + 1
print("------\n" , 'for循环1:')    
for i in range(5):
    print(i)

print("------\n" , 'for循环2:')   
for i in range(2,6):#循环从2开始,到6结束,总共循环4次
    print(i)

print("------\n" , 'for循环3:')   
for i in range(1,10,2):#循环从1开始,到18结果,每次递增2
    print(i)

image.png

4.列表

a_list = [1,2,30,30,30,4,2]#列表,列表索引是用0开始的
print(a_list)
print(a_list[1])#打印列表中第1个元素
print(a_list[5])  #打印列表中第5个元素
print(a_list[-2]) #打印列表中倒数第2个元素,倒数的时候索引是从1开始的

print("-------------------------")

print(a_list[1:4]) #打印列表中第1到第4个元素
print(a_list[:-2])#从头打印列表直到倒数第2个元素
print(a_list[-3:])#打印列表后三个元素

print("-------------------------")

for content in a_list:#打印列表内容,相当于Php的foreach
    print(content)
    
print("-------------------------")

print(len(a_list))#打印列表的长度
print(a_list.index(30))#打印列表中30首次出现的位置
print(a_list.count(30))#统计列表中30出现的次数

print("-------------------------")

a_list.sort()#列表正序排序,排序后原来的列表顺序就改变了
print(a_list)#[1, 2, 2, 4, 30, 30, 30]
a_list.sort(reverse=True)#列表倒序排序
print(a_list)#[30, 30, 30, 4, 2, 2, 1]

image.png

5.列表操作和多维列表

a_list = [1,2,30,30,30,4,2]
print(a_list)
a_list[0] = 100 #修改列表中第0个元素
print(a_list) 
a_list.append(200) #在列表末尾添加一个元素
print(a_list)
a_list.insert(3,300) #在列表中索引为3的位置加入一个元素300,其它的元素则依次后移一个位置
print(a_list)

print("-------------------------")

del a_list[3] #删除列表索引为3的元素
print(a_list)
a_list.remove(30) #删除列表中的一个首次出现的值为30的元素
print(a_list)
a = a_list.pop()#将列表中最后一个元素删除并返回
print(a)
print(a_list)

print("-------------------------")

b_list = [[1,2,3],
          [4,5,6],
          [7,8,9]]#多维列表
print(b_list[1])#打印多维列表中的第二行,索引是0开始
print(b_list[2][1])#打印多维列表中第三行的第二个元素

image.png

6.元组

#元组定义的两种方式,元组查看元素的方式和列表一样
#但元组定义好后,就不能对其中的值进行任何修改,包括排序
#改变元组变量的唯一方式就是对该变量重新赋值
a_tuple = (1,2,30,30,4,5)
b_tuple = 1,2,30,30,4,5
print(a_tuple)
print(b_tuple)
print(a_tuple[1])
print(a_tuple[1:4])
print(a_tuple.count(30))

print("-------------------------")

for i in a_tuple:
    print(i)
    
print("-------------------------")

a_tuple = (1,2,3,4)
print(a_tuple)

image.png

7.if条件语句

'''
>   大于
>=  大于等于
<   小于
<=  小于等于
==  等于
!=  不等于
and  并且
or   或者
'''
a = 1
b = 2
c = 3
d = 1

if a == b:
    print("a==b")
elif a == c:
    print("a==c")
elif a == d:
    print("a==d")
else:
    pass

if a<b<c:
    print("right")

colors = ['red','blue','black','green']
for color in colors:
    if color == 'black':
        break           #跳出大循环
        print('black')
    else:
        print('not black')
        
for color in colors:
    if color == 'black':
        continue    #跳出单次循环    
        print('black')
    else:
        print('not black')
        
print("-------------------------")

if 'red' in colors:#判断列表中是否有'red',返回值是True False
    print('red')
    
if 'gray' not in colors:#判断列表colors中是不是没有gray
    print("true")

print("-------------------------")

nullList = []
if nullList: #判断列表是否为空,有值返回True,空的话返回False
    print(1)
else:
    print(0)
    
if "ann" < "bgg":
    print(1)
else:
    print(0)

image.png

8.字典

#字典dict相当于php里的关联数组
d = {'pen':7,'apple':3,'applepen':10} #Key:Value,键:值
d2 = {1:'a',5:'b',2:'d'}
d3 = {1.2:3,'a':3.5,1:'aaa'}

print(d)
print(d2)
print(d3)
print(d['apple'])
print(d2[2])
print(d3[1.2])

print("-------------------------")

d4 = {'a':[1,2,3,4],'b':(1,2,3,4),'c':{'aa':1,'bb':2}}#字典的值可以是任何数据类型
print(d4)
print(d4['c']['aa'])
d['pen'] = 10 #修改Key对应的Value
print(d)
d['pineapple'] = 3 #新增一个|key:value对,字典是没有顺序的容器
print(d)
del d['pineapple'] #删除一个键值对
print(d)

print("-------------------------")

for key,value in d.items():#遍历整个字典的键值对
    print('key:',key,'\t','value:',value)
    
print("-------------------------")

for key in d.keys():  #遍历整个字典的键
    print('key:',key)
    
print("-------------------------")

for value in d.values(): #遍历整个字典的值
    print('values:',value)
    
print("-------------------------")

for key in sorted(d2.keys()):
    print('key:',key)

image.png

9.函数

a = 1000
def function5(b=20): #设置默认值
    global a   #使用全局变量
    c = a + b
    print('a=',a)
    print('b=',b)
    print('c=',c)
    print('a+b=',c)

function5()

image.png

10.模块

'''
注:下面的max是自定义的py文件,文件里就一个函数
def func_max(a,b):
    if a>b:
        return a
    else:
        return b
'''
import max #导入了max模块
a = max.func_max(10,34)
print(a)

from max import func_max #从max模块导入func_max函数,此种方法调用函数时不用加max的前缀
a = func_max(11,33)
print(a)

from max import * #导入max模块中所有的内容

import max as m #导入max,用as指定max的别名为m
a = m.func_max(22,44)
print(a)

import os #导入os模块
print(os.getcwd()) #获取当前文件所在的路径

image.png

11.类基础

class human:  #类
    #类的属性
    name = 'someone' 
    age = 100
    #类的方法
    def my_name(self):
        print('my name is',self.name)
    def my_age(self):
        print('my age is',self.age)
    def eat(self):
        print('eat')
    def think(self,a,b):
        print(a+b)
        
person1 = human() #创建一个person1的对象
person1.eat()
person1.my_age()
person1.name = 'zhangsan'
print(person1.name)
person1.think(10,23)

print("-------------------------")

#重名的类,后面定义的类会覆盖前面的类
class human:  #类
    def __init__(self,name,age=11):#创建对象时会执行
        self.name = name
        self.age = age
        
    #类的方法
    def my_name(self):
        print('my name is',self.name)
    def my_age(self):
        print('my age is',self.age)
    def eat(self):
        print('eat')
    def think(self,a,b):
        print(a+b)
        
person2 = human('xiaoming',10)
person2.my_age()
person3 = human(name='xiaohong',age=20)
person3.my_age()

image.png

12.类的继承

class human:  #类
    def __init__(self,name='someone',age=10):#创建对象时会执行
        self.name = name
        self.age = age
        print('human init')
        
    #类的方法
    def my_name(self):
        print('my name is',self.name)
    def my_age(self):
        print('my age is',self.age)
    def eat(self):
        print('eat')
    def think(self,a,b):
        print(a+b)
        
class student(human):#子类继承父类
    def __init__(self,grade=1,school='MIT'):
        super().__init__() #父类的初始化
        self.grade = grade
        self.school = school
        self.scroe = 100
        print('student init')
        
    #添加子类自己的方法
    def learn(self):
        print('learning')
    def my_school(self):
        print('my school is',self.school)
        
stu2 = student(4)
stu2.my_age()
stu2.learn()
stu2.my_school()

print("-------------------------")

class student(human):#子类继承父类
    def __init__(self,grade=1,school='MIT'):
        super().__init__() #父类的初始化
        self.grade = grade
        self.school = school
        self.scroe = 100
        print('student init')
        
    #添加子类自己的方法
    def learn(self):
        print('learning')
    def my_school(self):
        print('my school is',self.school)
    #子类可以重写父类的方法
    def think(self,a,b):
        print(a*b)
        
stu3 = student()
stu3.think(10,20)

image.png

13.input的用法

a_input = input()
print(a_input)

b_input = input('Please input something:')
print(b_input)

image.png

14.文件读写

text = 'Writing a text\nhello world'
print(text)

my_file = open('file1.txt','w') #以写入的方式打开文件,如果文件不存在会创建该文件
my_file.write(text)
my_file.close()

#使用with .... as的方式打开文件时,
#with后面的语句执行完后会自动关闭文件句柄,不需要再调用close()函数来手动关闭
with open('file2.txt','w') as f2:#清空文件,然后写入
    f2.write('123123\nhahaha')
    
with open('file2.txt','a') as f2: #在文件最后追加内容
    f2.write(text)
    
with open('file2.txt','r') as f2: #以读取的方式打开文件
    content = f2.read()   #读取全部内容
    print(content)

print("-------------------------")
    
with open('file2.txt','r') as f2:
    content = f2.readline() #读取一行内容
    print(content)
    
print("-------------------------")

with open('file2.txt','r') as f2:
    content = f2.readlines() #读取所有行存放到一个列表中
    print(content)
   
print("-------------------------")

filename = 'file2.txt'
with open(filename) as f:
    for line in f:
        print(line.rstrip())

image.png

15.异常处理

try:
    file = open('hahaha','r+')
except Exception as e:
    print(e)
    
try:
    file = open('hahaha','r+')
except Exception as e:
    print(e)
    response = input('Do you want to create it:')
    if(response=='yes'):
        with open('hahaha','w') as f:
            pass
        print('The file was created successfully')
    else:
        pass
else:#没有错误
    file.write('hahaha')
    file.close()

image.png

16.json数据存储

import json
a_dict = {'user_id':"qbf",'user_name':'hello',100:200}

with open('example.json','w') as f:
    json.dump(a_dict,f)
    
with open('example.json') as f:
    content = json.load(f)
    print(content)

image.png