python基础学习

python的基础语法

基础操作:
age=20 #声明一个变量age,用来存储20
1+1  #基础数学加法
print('hello world')  #打印hello world

条件判断if

if 1==2:
  print('')
else:
  print('')

for循环操作

for i in range(5):
  print(i)

while循环操作

while n>0:
  print('')

break,continue,pass语句

break可以跳出循环
continue可以跳出当前循环,进行下次循环
pass是个占位语句,不做任何操作

Number数据类型

python支持三种不同的数字类型
int,float,complex
a=3
a=3.14
a=3+4i

string数据类型

python支持字符串拼接,截取多种运算
a="hello"
b="python"
print(a+b)
print(a[1:4]) #python是左闭右开的,从0开始的 ,所以截取的是ell
print(a*3)#输出重复字符串hellohellohello,*表示重复
print('h' in a)#判断字符串是否包含h
print('h' not in a)#判断字符串中是否不包含h
'-'.join("hello")#join()是以字符作为分隔符,把字符串所有元素合并成为一个新的字符串h-e-l-l-o
字符串中单引号和双引号,没什么区别,里面需要转义字符\
字符串中的三引号,里面就不要转义字符了
print("i\'m going to school")
print('i\'m going to school')
print("""i'm going to school""")
这三句话输出的是一样的

List列表

#列表是用[]表示,用逗号分隔开,列表索引值以0开始,以-1从末尾的开始位置
list = ['abcd', 786 , 2.23, 'runoob', 70.2]
print(list[1:3])#遵循左闭右开的原则,[786,2.23]
list1=[123,'runoob']
print(list+list1)

#遍历列表,获取元素:
for name in names:
    print(name)

#列表元素添加:
append()末尾追加
names.append('zhx1')
extend()一次可以添加多个,一个列表加到另一个列表上,列表合并
models=['zhx','zhr']
names.extend(models)
insert(1,'')指定位置添加
names.insert(1,'zhx2')

#修改列表元素:
通过下标来进行修改
names[1]='zhx'
len(names)#列表长度

#删除列表元素,有三种方式:
del names[1]
names.remove('zhx')
names.pop(1)

#列表切片,就是把列表中的一些元素切出来,返回的是一个列表,遵循左闭右开的原则:
print(names[2:5])#就是下标为2,3,4组成的列表
print(names[-1:])#就是最后一个元素组成的列表
print(names[-3:-1])#就是-3,-2组成的一个列表
print(names[-5:-1:2])#就是-5,-4,-3,-2,这些每隔一个组成的列表,就是-5,-3组成的列表
print(names[::2])#就是names中全部元素,从第一个开始每隔1个组成的列表
print(names[::-1])#就是从后往前取

#列表排序:
sorted(names)#默认是升序
sorted(names,reverse=True)#降序

Tuple元组

#tuple与list列斯,不同之处碍于 tuple的元素不能修改,tuple写在小括号里,元素之间用逗号隔开,元组元素不可修改,但可以包含可变对象,如list
t1 = ('abcd', 786 , 2.23, 'runoob', 70.2)
t2 = (1, )#元组中只有一个元素的时候,需要在最后加上逗号
t3 = ('a', 'b', ['A', 'B'])
t3[2][0] = 'X'

#元组中存放元素:
tuple2=tuple(names)#names是一个列表
print(tuple2)

#元组的访问,通过下标进行访问
print(tuple2[1])

#元组的修改:
t1 = (1,2,3)+(4,5)
print(t1)
t2 = (1,2) * 2
print(t2)

#元组的一些函数:
print(max(random_tuple))
print(min(random_tuple))
print(sum(random_tuple))
print(len(random_tuple))

#统计元组中某个元素的个数:
print(random_tuple.count(14))

#找到元组中元素对应的下标
if(4 in random_tuple):
    print(random_tuple.index(4))#如果4不存在,会报错,所以要 判断

# 元组的拆包和装包
t3=(1,2,3)
a,b,c=t3
print(a,b,c)#1 2 3

# 当元组中元素个数和变量个数不一致的时候
t4=(1,2,3,4,5)
a,b,*c=t4#把t4[0],t4[1]分别赋值给a,b,其余元素装包后赋值给c
print(a,b,c)#1 2 [3, 4, 5]
print(c)#[3, 4, 5]
print(*c)#3 4 5

dict字典数据类型

{}来表示
字典是无序的对象集合,使用键-值(key-value)存储,具有极快的查找速度
key必须是不可变类型,必须是唯一的
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
print(d['Michael'])

# list可以转成字典,但前提是列表中的元素都要成对出现
dict3=dict([('name','杨超越'),('weight',45)])
print(dict3)#{'name': '杨超越', 'weight': 45}

# 字典中的items(),keys(),values()
dict5={'杨超越':165,'虞书欣':166,'上官婉儿':164}
print(dict5.items())#dict_items([('杨超越', 165), ('虞书欣', 166), ('上官婉儿', 164)])
for key,value in dict5.items():
    if value>165:
        print(key)#虞书欣

# 取出字典中所有的值,保存到列表中   values()
results=dict5.values()
print(results)#dict_values([165, 166, 164])

# 求平均身高
total=sum(results)
avg=total/len(results)
print(avg)

#取出字典中所有的key,保存到列表中
names=dict5.keys()
print(names)#dict_keys(['杨超越', '虞书欣', '上官婉儿'])

print(dict5.get("杨超越"))
print(dict5.get("zhao",170))#如果能够取到值,则返回字典中的值,否则返回默认值

#删除字典中的key和value
result=dict5.pop("虞书欣")#通过key删除value,返回value
print(result)
print(dict5)

set数据类型

set也是一组key的集合,但不存储value,由于key不能重复,所以,在set中,没有重复的key
set是无序的,重复元素在set中自动被过滤
s = set([1, 1, 2, 2, 3, 3])
print(s)
{1, 2, 3}

python math模块

import math
print(math.ceil(4.1))   #返回数字的上入整数
print(math.floor(4.9))  #返回数字的下舍整数
print(math.fabs(-10))   #返回数字的绝对值
print(math.sqrt(9))     #返回数字的平方根
print(math.exp(1))      #返回e的x次幂

python 随机数random模块

import random
k=random.random()#返回0到1之间的一个实数
random.seed(10)#设置种子,这样每次的随机数都是一样的
random.randint(1,20)#1到20的随机整数

python面向对象

init()定义构造函数,会把代表自身的self作为第一个参数传入
使用.来访问对象的属性
class Animal:
    def __init__(self,name):
        self.name=name
        print("动物名称实例化")
    def eat(self):
        print(self.name+'吃东西')
    def drink(self):
        print(self.name+'喝水了')

cat=Animal('miaomiao')
print(cat.name)
cat.eat()
cat.drink()
#结果
动物名称实例化
miaomiao
miaomiao吃东西
miaomiao喝水了



# 定义子类
class person:
    def __init__(self,name):
        self.name=name
        print("调用父类构造函数")
    def eat(self):
        print("调用父类方法")

class student(person):#定义子类
    def __init__(self):
        print("调用子类构造方法")
    def study(self):
        print("调用子类方法")

s=student();#实例化子类
s.study()
s.eat()
#结果:
调用子类构造方法
调用子类方法
调用父类方法

python中的json字符串处理

import json
data=[{'b':2,'d':4,'a':1,'c':3,'e':5}]
json1=json.dumps(data,sort_keys=True,indent=2,separators=(',',':'))
#其中dumps是把字典转为json字符串,sort_keys=True是进行字典排序,indent是缩进符,separators是去掉,和:后面的空格
print(json1)
#结果:
[
  {
    "a":1,
    "b":2,
    "c":3,
    "d":4,
    "e":5
  }
]

jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}'
text=json.loads(jsonData)#loads是把json字符串转为字典
print(text)
#结果:
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

python异常处理

捕捉异常用的是try/except语句,可以检测try语句块中的错误,从而让except语句捕捉异常信息并处理
try:
    fh=open("D:/test/test1/12.txt","w")
    fh.write("这是一个测试文件,用于测试异常")
except IOError:
    print('Error:没有找到文件或读取文件失败')
else:
    print("内容写入文件成功")
finally:#finally中的内容,退出try时总会执行
    print("关闭文件")
    fh.close()

python对文件和文件夹的操作

引入os包
import os
题目:找出一个文件夹下的文件,其中文件名含有2020的文件,把文件和文件所在目录打印出来
1,可以用递归来做
2,可以用os.walk(path)来做
import os  #引入os
path1="D:\\test"#要查找的文件名
filename="2020" #记录文件名
result1=[]#这个列表是用来存储所有的文件名

def findfiles(path,result):
    #这里是要查找path路径下的所有文件,包括文件下的文件,使用递归来做
    newpath=path
    if os.path.isfile(path):#这是目录是文件,直接添加到result中
        result.append(path)
    elif os.path.isdir(path):#这个目录是文件夹,需要遍历这个文件夹下的文件,进行递归
        for s in os.listdir(path):
            newdir=os.path.join(path,s)
            findfiles(newdir,result)
    return result

def findfiles1(path,result):
    for home,dirs,files in os.walk(path):
        for s in files:
            result.append(os.path.join(home,s))
    return result

if __name__=='__main__':
    files=findfiles1(path1,result1)
    i=1
    for s in files:
        if s.find(filename)!=-1:
            print('%d'%i,','+s)
            i=i+1

#结果:
1 ,D:\test\20204568974.txt
2 ,D:\test\45465452020456.txt
3 ,D:\test\jiwej20203232.txt
4 ,D:\test\test1\20204568974 - 副本 (5).txt
5 ,D:\test\test1\20204568974 - 副本.txt

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266