python学习笔记(基础语法)

python学习笔记

输出

一些基本的输出:

# 这是我的第一个Python程序嘻嘻嘻
print("hello,world") #单行注释
​
'''
这是多行注释,
'''
a=23
print("这是变量:",a)
​
age=18
print("我的年纪是:%d"%age)
print("我的年纪是%s,我的国际是%s"%("小张","中国"))
​
print("www","baidu","com",sep=".") #设置分隔符为.
print("hello",end="")#表示不换行
print("world",end="\t")#表示输出完空一个Tab健
print("python",end="\n")#表示输出完换行
print("1234\n5678")#一行显示1234,另一行显示5678

格式化输出:

c = 3.1415926
print("输出pi保留小数点后两位:{:.2f}".format(c))
#输出结果  输出pi保留小数点后两位:3.14
#后续变量填充到{}中,{:.2f}表示将变量C填充到这个位置时取小数点后两位

一些小tips

在pycherm中:

将光标停留在函数上,按ctrl+B可以查看函数

ctrl+Z 撤回操作

注意:每次运行新的file时单击右键选择运行当前函数,才可以执行当前函数

变量类型

  1. 变量可以是任意数据类型,在程序中用一个变量名表示

  2. 变量名必须是英文,数字和下划线,且不能以数字开头

  3. 字符串类型用单引号或双引号都可

  4. 赋值: a='ABC'

    • 在内存中创建一个‘ABC’的字符串

    • 在内存中创建一个名为a的变量,并把它指向‘ABC’

输入

password = input("请输入密码") 
print("您刚刚输入的密码是:",password)
  • input()的小括号中放入的是,提示信息用来在获取数据之前给用户一个简单的提示

  • input()在从键盘获取了数据以后会放到等号左边的变量中

  • input()函数接收的输入必须是表达式

输入的password认为是字符串类型的

强制类型转换

将字符型转化为整型

a=int('123')
b=100+a
print(b)
​
c=int(input("输入c:"))
print("输入了一个数字:%d"%c)

运算符

  1. 逻辑运算符 : and or not 与或非

  2. 成员运算符

    in : 如果在指定序列中找到值返回True否则返回False

    not in : 与上面相反

判断语句和循环语句

条件判断

非0和非空的值为True,0或者None为False

if True:
    print("True")
    print("Answer")
else :
    print("False")
print("end")    
#打印True Answer end

注意: 同一层次的代码必须是相同的缩进

注意: if ,else 后面有冒号

else 和 elif 可以一起使用

生成随机数

import random  #引入随机库
a=random.randint(0,3) #随机生成0~3区间内的数字

循环

一般循环和步进循环

for i in range(5): #i从0~5
    print(i)#打印出0,1,2,3,4
    
for i in range(0,10,3): #i从0~10每次增长3到10结束 (起始位置:结束位置:步进值)
    print(i) #打印出 0,3,6,9

还可以对字符串逐个遍历

name ='seven'
for x in name:
    print(x,end='\t')

另一种循环遍历,有点像利用下标遍历数组

a=['aa','bb','cc','dd']
for i in range(len(a)):
    print(i,a[i]) #输出i和i里面的元素
while循环

i=1
while i<5:
    print(i)
    i+=1

注意:记得设置循环结束的条件,不可以写i++

while 和 else连用

当while条件不满足时跳出来执行else语句的内容

count = 0
while count<5:
    print (count,"小于5")
    count+=1
else :
    print(count,"小于等于5")

字符串

单引号,双引号,三引号

  • 三引号表示段落,换行空格会一起打印出来

  • 单引号和双引号之间没有太大区别,要输出单引号或双引号可以用转义字符

  • \转义字符

字符串截取

str = 'seven'
print(str)
print(str[0:3]) #【起始位置:结束位置:步进值】
print(str[2])#也可以只访问一个内容str = 'seven'
​
print(str[:5]) #从字符串开始的第一个字符输出到第五个
print(str[4:]) #从第四个字符输出到最后一个

字符串拼接

str = 'seven'
print(str+',你好') #采用加号拼接
print("-"*30)  #打印30个横线
print("hello\nworld") #转义字符,hello之后world换行输出
print(r"hello\nworld") #字符串前面有r会使转义字符失效,显示原始字符

字符串替换

replace函数

注意:replace 不会改变原 string 的内容

temp_str = 'this is a test'
print(temp_str.replace('is','IS'))
print(temp_str)
​
#输出
thIS IS a test。
this is a test。

字符串常用方法

  • bytes.decode(encoding="utf-8",errors="strict") 设置解码格式为utf-8

  • encode(encoding="utf-8",errors="strict") 在编码使用utf-8

  • isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字返回True,否则返回False

  • isapha() 如果字符串至少有一个字符并且所有字符都是字母返回True,否则返回False

  • isdigit() 如果字符串只包含数字返回True否则返回False

  • isnumeric() 如果字符串只包含数字返回True否则返回False

  • join(seq) 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

  • len(string) 返回字符串长度

  • istrip() 截掉字符串左边的空格或指定字符

  • restrip() 删除字符串末尾的空格

  • split(str="",num=string.count(str) num=string.count(str)) 以str 为分隔符截取字符串,如果num有指定的值,则仅截取 num+1 个子字符串

列表

namelist = [] #定义一个空的列表
namelist = ["小张","小王","小李"]
test = [1,"测试"] #列表中可以存储混合类型
print(namelist[0]) #可以使用下标输出
​
#也可以循环打印列表中每一个元素
for name in namelist:
    print(name)

三种在列表中增加元素的方法:

nametemp = input("请输入要增加的姓名:")
namelist.append(nametemp) #在末尾追加一个元素
​
a=[1,2]
b=[3,4]
a.append(b) #将列表b当作一个元素,加入到a列表中
a.extend(b) #将b里面的每一个元素,逐一的加入到a中
​
a=[0,1,2]
a.insert(1,3) #第一个变量表示插入的下标,第二个表示要插入元素

movieName=["加勒比海盗","骇客帝国","指环王","速度与激情"]
del movieName[2]  #在指定下标删除一个元素
movieName.pop()  #弹出末尾最后一个元素,删除末尾元素
movieName.remove("指环王")  #直接删除指定类容的元素

注意:在列表中内容是可以重复的,用remove删除指定内容时,只删除找到的和指定内容相 同第一个元素

namelist = ["小张","小王","小李"]
namelist[1]="小红"

namelist = ["小张","小王","小李"]
findName= input("请输入要查找的姓名:")
if findName in namelist:
    print("在名单中找到了该名字")
else:
    print("未在名单中找到该名字")
  
​
​
a = ['a','b','c','a','b']
print(a.index("a",1,4)) #可以查找指定下标范围的元素,并返回对应数据的下表
                        #范围区间左闭右开
                        #找不到会报错
        
print(a.count('a'))     #统计某个元素出现几次

用for循环拿到列表下标和元素:使用枚举函数,同时拿到表中的下标和元素内容

myList = ["a","b","c","d"]
for i,x in enumerate(myList):   #enumerate是枚举类型
    print(i,x)      #打印多个值可以用逗号隔开
#访问结果
0 a
1 b
2 c
3 d

排序和反转

a=[1,4,2,3]
a.reverse()     #将列表所有元素翻转
​
a.sort()        #按从低到高排序,升序排序
a.sort(reverse=True) #按降序排序
print(a)

列表嵌套

schoolName=[[],[],[]] #有3个元素的空列表,每个元素都是一个空列表
schoolName=[["北京大学","清华大学"],["南开大学","天津大学","天津师范大学"],["山东大学","中国海洋大学"]]
print(schoolName[0][0])

注意:嵌套的列表中每个元素的个数可以不一样

元组(tuple)

  • 元组写在小括号里,元素之间用逗号隔开

  • 元组的元素不能修改,但可以包含可变对象

  • 注意:定义只有一个元素的元组必须加逗号

tup1 =()    #创建一个空的元组
#tup2=(50)  #<class 'int'>
tup2=(50,)  #<class 'tuple'>

tup1 = (12,34,56)
tup2 = ("abc","xyz")
tup = tup1 + tup2   
print(tup)  #输出(12, 34, 56, 'abc', 'xyz')

实际上是增加了一个新的元组,或者链接

tup1 = (12,34,56)
del tup1 #删除了整个元组变量

tup1 = ("abc","def",2000,2020)
print(tup1[0])  #可以使用下标访问
print(tup1[-1]) #访问2020,最后一个元素
print(tup1[1:5])    #访问结果 ('def', 2000, 2020)
                    #左闭右开,进行切片

也可以通过for循环遍历元组

tup1 = (12,34,56)
#tup1[0] = 100  #报错,不允许修改

其他的一些操作

操作名称操作方法举例
元组成员关系in2 in list1
得到重复元素的数量counttuple.count(1)
获取元组长度len()
获取元组最大值max()
获取元组最小值min()
其他类型对象转换成元组tuple()

字典(dic)

  • 字典是无序的对象集合,使用键-值(key-value)存储,具有极快的查找速度

  • 键(key)必须使用不可变类型

  • 同一个字典中,键(key)必须是唯一的

#字典的定义
info = {"name":"吴彦祖","age":18}
#字典的访问
print(info["name"])
print(info["age"])
#访问了不存在的键
#print(info["gender"])  #直接访问,会报错
​
print(info.get("gender"))   #使用get方法,没有找到对应的健,默认返回:None
print(info.get("gender","m"))   #没找到可以设定默认值,显示m

newID = input("请输入新的学号:")
info["id"]=newID

info = {"name":"吴彦祖","age":18}
#[del]
del info["name"]    #三处指定键值
del info            #将整个字典散出
#[clear] 清空
info.clear() #将字典内容清空

info = {"name":"吴彦祖","age":18}
info["age"]=20

info = {"id":1,"name":"吴彦祖","age":18}
#遍历所有的键
for key in info.keys():
    print(key)

#遍历所有的值
for value in info.values():
    print(value)

#遍历所有的键值对,for循环不仅可以访问一个值
for key,value in info.items():
    print("key=%s,value=%s"%(key,value))

其他操作

操作名称操作方法举例
判断Key是否存在in“key” in dict1
合并字典updatedect1.update(dect2)
把两个列表转为字典dict+zip方法dict(zip(list1,list2))
将其他类型对象转换成字典dict()dict([(1,2),(2,3)])

其他的获取长度,取得键最小值,获得键最大值:len(),min(),max(),

集合(set)

  • 集合和dict类似,也是一组key的集合,但不存储value。

  • 在set中,没有重复的key

  • set是无序的,重复的元素在set中自动被过滤

常用操作

操作名称操作方法举例
遍历集合通过for 循环for i in set1: print(i)
更新集合update方法set1.update(set2)
向集合添加新元素add方法set1.add(5)
移除集合中的元素remove方法set1.remove(5)
弹出元素pop方法val = set.pop()
清除元素clear方法set1.clear()
删除集合deldel set1

小结

是否有序是否可变类型
列表[]有序可变类型
元组()有序不可变类型
字典{}无序key不可变 val可变
集合{}无序可变类型(不重复)

函数

把具有独立功能的代码块组织为一个小模块

定义函数

定义函数格式如下:

def 函数名 (参数1,参数2):
    代码
    return 要返回的值

返回多个值的函数:

def divid(a,b):
    shang= a/b
    yushu= a%b
    return shang,yushu

sh,yu = divid(5,2)
global a #声明全局变量标识符,使a不会被局部变量覆盖

文件操作

在python中,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件

open(文件名,访问模式)

基本常用操作

f = open("test,txt",'w') #打开文件,w模式(写模式),文件不存在就新建
f.write("hello world!") #将字符串写入文件
f.close() #关闭文件


#read方法,读取指定字符,开始时定位再文件头部,每执行一次向后移动指定字符数
f = open("test,txt",'r') #打开文件,r模式(读模式),文件不存在就新建
content = f.read(5) #从文件中读5个字符出来
content = f.read(5) #从上次读位置结束后再往后读5个
f.close() #关闭文件


f = open("test,txt",'r') #打开文件,r模式(读模式),文件不存在就新建
content = f.readlines()#全部读完,一行是一个列表
#print(content)
i=1
for temp in content: #输出每一行行号和内容
    print("%d,%s"%(i,temp))
    i+=1
f.close() #关闭文件

注意:每一次文件操作记得将文件关闭

readline()每次读一行

文件重命名

import os
os.rename("毕业论文.txt","毕业论文-最终版.txt")

删除文件

import os
os.remove("毕业论文.txt")

#其他操作
os.mkdir("张三")	#创建文件夹
os.getcwd()		#获取当前目录
os.chdir("../")	#改变默认目录
os.listdir("./")#获取目录列表
os.rmdir("张三")#删除文件夹

异常处理

#发生异常程序会中断执行
print("----test---1---")
f = open("123.txt", "r")    #用只读模式打开了一个不存在的文件
print("----test---2---")    #这句代码不会被执行

#异常捕获
try:
    print("----test---1---")
    f=open("123.txt","r")
    print("----test---2---")
except IOError:     #文件没找到,属于IO异常
    pass            #捕获异常后,执行的代码
                    #pass 是占位符

    
try:
    print(num)		#num未定义
#except IOError:    #异常类型想要捕获,需要一致,具体异常类型可见报错提示
except NameError:
    print("产生错误了!")

    
#想要捕获多种异常
try:
    print("----test---1---")
    f = open("123.txt", "r")
    print("----test---2---")

    print(num)
except (NameError,IOError) as result:#将可能产生的所有异常类型,都放到下面的小括号中
    print("产生错误了!")
    print(result)			#获取错误描述
    

#捕获所有异常
try:
    代码
except Exception as resrlt:
    print(result)			#获取错误描述

注意:Exception 可以承接任何异常

try....finally嵌套

在文件打开之后,进行其他操作时可能发生异常,这时可以在finally里中关闭文件,不管是否发生异常finally中的代码都会被执行

import time
try :
    f = open("123.txt","r")
    try:
        while True:
            content = f.readline()
            if(len(content)) == 0:
                break
            time.sleep(2) #休眠两秒
            print(content)
    finally:           #不管有没有发生异常,都会执行finally,将文件关闭
        f.close()
        print("文件关闭")
except Exception as result:
    print("发生异常")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值