Python基础

目录

基础

语句

列表

字符

元组

字典

集合

函数

文件

异常处理


  • 基础

        1.注释        

         # 单行注释

         ''' '''   多行注释

#  单行注释
'''
三引号是多行注释
'''

        2.变量    

#变量
a=10
b='dsds'
print("a =",a,"b=",b)

        3.占位符、格式化输出

         “  % ”占位符

        %d为age变量的占位符

        多个变量占位用    %(a,b)  实现

#占位符、格式化输出
age=10
print("年龄为%d岁"%age)
age+=1
print("年龄为%d岁"%age)
name="yinshao"
country="china"
print("我的名字是",name,",我的国家是",country)
print("我的名字是%s,我的国籍是%s"%(name,country))

输出结果:

年龄为10岁
年龄为11岁
我的名字是 yinshao ,我的国家是 china
我的名字是yinshao,我的国籍是china

        常见的格式符号

%s字符串
%d

十进制整数

%c字符
%f浮点数
%o八进制整数
%x十六进制整数

         4.转义字符

        常见转义字符

        \t:制表     \n:换行     \r:回车

print("aaa","bbb","ccc")#默认间隔是空格
print("aaa","bbb","ccc",sep='.')#sep表示间隔
print("mmm")#每次打印默认自动换行
print("nnn",end=" ")#end表示尾部属性
print("xxx",end="\n")#换行
print("yyy",end="\r")
print("hello\nword")

输出结果:

aaa bbb ccc
aaa.bbb.ccc
mmm
nnn xxx
hello
word

        5.输入与输出

        

password=input("请输入密码:")
print("您输入的密码是:",password)
print(type(password))

输出结果:
请输入密码:123456
您输入的密码是: 123456
<class 'str'>

#可见使用input命令输入的数据类型为字符型

#若需要计算,则需要强制转换成整型或其他类型

m=input()
n=input()
print(m+n)

输出结果:

5
6
56

#不强制转换,输出的是字符串的拼接

#运算需要强制转换
x=int(input())
y=int(input())
print(x+y)

输出结果:

5
6
11

        6.运算符(常见)

        幂运算:**

        除法:/

        整除://

        取模:%

j=2
k=3
print(2**3)#幂运算
print(j/k)#除法
print(j//k)#整除

输出结果:

8
0.6666666666666666
0

  • 语句

        #条件语句

        if 判断条件1 :

        执行语句1

        elif 判断条件2:

        执行语句2

        else:

        执行语句3

        

if 1:
    print("TRUE")
if True:
    print("true")

输出结果:

TRUE
true

        Example:

score=52
if score>=90:
    print("A")
elif score>=80:
    print("B")
elif score >= 70:
    print("C")
elif score>=60:
    print("D")
else:
    print("not pass")

 输出结果:not pass

        #随机数的引入

        import random(引用函数)

        g=random.randint(0,100000)(括号里面是范围)

        #For循环

        for i  in  range (  初(默认0),末,步长(默认1)  )  

                执行语句

        for i  in  list str  之类:

                执行语句

for i in range(5):#[0,5)
    print(i)
print(" ")
for j in range(5,8):#[5,8)
    print(j)
print(" ")
for m in range(0,9,2):#[0,9)每次加2
    print(m)
name="zaozhuang"
for n in name:
    print(n,end="\t")#也可以遍历字符串
print("")
p=["sc","sdfsd","aabb","dssswwe"]
for h in range(len(p)):
    print(h,p[h])
print("len=",len(p))#len(p)表示数组长度

 输出结果:

0
1
2
3
4
 
5
6
7
 
0
2
4
6
8
z    a    o    z    h    u    a    n    g    
0 sc
1 sdfsd
2 aabb
3 dssswwe
len= 4

         #While 循环

        while  条件:

                执行语句

mk=0
sum=0
while mk<=100:
    sum=sum+mk
    mk=mk+1
print(sum)

输出结果:5050

        #break:结束循环

        #continue:结束本次循环,以下不执行

aa=0
while aa<=5:
    print("*"*10)
    aa=aa+1
    if(aa==3):
        break#直接结束
    print(aa)
bb=0
while bb<=5:
    print("*"*10)
    bb=bb+1
    if(bb==3):
        continue#第五次循环时,以下不在执行
    print(bb)

输出结果:

1
**********
2
**********
**********
4
**********
5
**********
6
 

  • 列表

        类似数组

定义:list[ ]

list1 =[1,"666","xiaohai",56,89,"wang","立",522]#元素可以是不同类型
list2=[23,"ds","dsdwd22"]
list=[]

        1.列表的遍历

        方法一:循环下标进行遍历

i=0
for i in range(0,len(list2)):
    print(list2[i])
    i=i+1

        方法二:直接循环列表内元素

for j in list2:
    print(j)

        方法三:枚举函数enumerate,同时输出下标及元素

        

list1 =[1,"666","xiaohai",56,89,"wang","立",522]
for m,n in enumerate(list1):
    print("下标:",m,"元素:",n)

#m遍历列表的下标,遍历列表元素

输出结果:

下标: 0 元素: 1
下标: 1 元素: 666
下标: 2 元素: xiaohai
下标: 3 元素: 56
下标: 4 元素: 89
下标: 5 元素: wang
下标: 6 元素: 立
下标: 7 元素: 522

        2.列表的切片

        list[起始:末:偏移量]  左闭右开  偏移量默认1

    #最左侧第一个字符,偏移量是 0,第二个偏移量是 1.直到 len(str)-1为止。
    #最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2.直到-len(str)为止。
list1 =[1,"666","xiaohai",56,89,"wang","立",522]
print(list1[1:6:2])
print(list1[6:1:-1])
print(list1[6:1:-2])

输出结果:

['666', 56, 'wang']
['立', 'wang', 89, 56, 'xiaohai']
['立', 89, 'xiaohai']

        3.常用函数

        (1).增

        #append  默认增加到尾部

        list.append("增加的字符或列表")

list1 =[1,"666","xiaohai",56,89,"wang","立",522]
list1.append("yin")
print(list1)

输出结果:
[1, '666', 'xiaohai', 56, 89, 'wang', '立', 522, 'yin']

        #extend 在尾部新增列表

        list1.extend(list2)      在list1后+list2

list1.extend(list2)
print(list1)

输出结果:

[1, '666', 'xiaohai', 56, 89, 'wang', '立', 522, 'yin', 23, 'ds', 'dsdwd22']

        #insert  

        list.insert(插入位置,插入值)

list3=[0,1,2]
list3.insert(1,56)#1号位插入56
print(list3)

    输出结果:

[0, 56, 1, 2]

        (2).删

        #del   删除列表指定元素

        del list[删除元素的下标]

list1=[1, '666', 'xiaohai', 56, 89, 'wang', '立', 522, 'yin', 23, 'ds', 'dsdwd22']
del list1[1]
print(list1)

输出结果:

[1, 'xiaohai', 56, 89, 'wang', '立', 522, 'yin', 23, 'ds', 'dsdwd22']

        #pop  删除最后一个元素

        list.pop()

list1=[1, 'xiaohai', 56, 89, 'wang', '立', 522, 'yin', 23, 'ds', 'dsdwd22']
list1.pop()
print(list1)

输出结果:
[1, 'xiaohai', 56, 89, 'wang', '立', 522, 'yin', 23, 'ds']

        #remove  删除指定元素

        list.remove(删除的元素)   若有重复,只删除前面的

list1=[1, 'xiaohai', 56, 89, 'wang', '立', 522, 'yin', 23, 'ds']
list1.remove(23)
print(list1)

输出结果:

[1, 'xiaohai', 56, 89, 'wang', '立', 522, 'yin', 'ds']

        #clear 

        list.clear()  删除所有元素

list6=[12,56,89,2,3]
list6.clear()
print(list6)

输出结果:

[ ]

        (3).改

        list[修改的位置下标]=修改的值

list1=[1, 'xiaohai', 56, 89, 'wang', '立', 522, 'yin', 'ds']
list1[8]="yao"
print(list1)

输出结果:

[1, 'xiaohai', 56, 89, 'wang', '立', 522, 'yin', 'yao']

        (4).查

        #in                             not in    判断元素是否在列表中,默认返回ture/flase

        元素 in list

        元素 not in list  

print("56" in list1)

输出结果:False

        #index 查询元素是否在某一区间的位置,返回下标

               list.index(查询元素,起始位置,末位置)       若有重复则输出第一个位置

list1=[1, 'xiaohai', 56, 89, 'wang', '立', 522, 'yin', 'yao']
print(list1.index("xiaohai",0,5))

输出结果:1

        # count  某个元素出现的次数

        list.count(元素)    

list1=[1, 'xiaohai', 56, 89, 'wang', '立', 522, 'yin', 'yao']
print(list1.count("666"))

输出结果:0

        (4).排序

        #sort   由小到大排(纯数字或者全部强制转换同一类型)

        list.sort()   由小到大                list.sort(reserve=True)  由大到小

list4=[2,5,3,1,48,0,2,6,9]
list4.sort()
print(list4)
list4.sort(reverse=True)
print(list4)

输出结果:

[0, 1, 2, 2, 3, 5, 6, 9, 48]
[48, 9, 6, 5, 3, 2, 2, 1, 0]

        4.二维列表

        列表作为列表的元素即为二维列表

        调用:list[第一层位置][第二层位置]  依次....

list5=[[12,45],["ds","wr","dswwdds"],["中国"]]
print(list5[1])
print(list5[1][1])

输出结果:

['ds', 'wr', 'dswwdds']
wr

        5.小题目

        8个老师随机分配到3个办公室

import random
office = [[],[],[]]
teacher = ["A","B","C","D","E","F","G","H"]
for name in teacher:
    index=random.randint(0,2)
    office[index].append(name)
k=0
for k in range(0,len(office)):
    print(office[k])
    k=k+1

输出结果:

1:

['G']
['A', 'E']
['B', 'C', 'D', 'F', 'H']
2:

['C', 'D', 'H']
['E', 'G']
['A', 'B', 'F']

  • 字符

        1.字符串

        '一般字符串'              "一般句子"      ''' 一般段落 '''

word ='字符串'
sen= "这是一个句子"
par ="""
    这是一个段落
    可以写好几行
"""
print(word)
print(sen)
print(par)

输出结果:

字符串
这是一个句子

    这是一个段落
    可以写好几行


        2.转义字符

        #   \ 使用可以输出一些具有特殊意义的字符  \n换行符    rjia

a='\'' # \ 可以转义字符
b='I\'m a student'
print(a)
print(b)

print("hello\nzaozhuang")
print(r"hello\nzaozhuang")

输出结果:

'

hello
zaozhuang
hello\nzaozhuang


         3.切片

        #str[起始:末:偏移量]  左闭右开  偏移量默认1

   #最左侧第一个字符,偏移量是 0,第二个偏移量是 1.直到 len(str)-1为止。
   #最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2.直到-len(str)为止。
str1="zaozhuang"
print(str1)
print(str1[-8])
print(str1[1])
print(str1[0:3])#[0,3)
print(str1[0:9:2]) #[起始值:结束值:间隔值]
print(str1[-4:])#倒数四个
print(str1[-5:-3])#倒数5个到倒数第3个
print(str1[::-1])#间隔为1,反向输出
str2="ni hao"
print(str1+str2)#字符拼接
print(str1*3)

输出结果:

zaozhuang
a
a
zao
zohag
uang
hu
gnauhzoaz

zaozhuangni hao
zaozhuangzaozhuangzaozhuang

   4.函数     

# a='helLO'

a.capitalize()产生新的字符串,首字母大写HELLO
a.title()产生新的字符串,每个单词都首字母大写hello
a.upper()产生新的字符串,所有字符全转成大写HELlo
a.upper()产生新的字符串,所有字符全转成小写Hello
a.swapcase()产生新的,所有字母大小写转换Hello

aaa='helLO'
print(aaa.upper())    # 全部大写
print(aaa.lower())    # 全部小写
print(aaa.swapcase()) # 大小写互换
print(aaa.capitalize())   # 首字母大写,其余小写
print(aaa.title())    # 首字母大写

 输出结果:

HELLO
hello
HELlo
Hello
Hello

         #使用内置函数 ord()可以把字符转换成对应的 Unicode 码;

         #使用内置函数 chr()可以把十进制数字转换成对应的字符。

print(ord('a'))
print(ord('高'))
print(chr(66))

输出结果:
97
39640
B

        #字符串替换

        str.replace(代替换的字符,替换成)

bbb="dsssadaaedfrgtgfds"
bbb=bbb.replace('a','高')
print(bbb)

输出结果:dsss高d高高edfrgtgfds

        #分割与合并(生成列表)

       split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)。如果不指定分隔 符,则默认使用空白字符(换行符/空格/制表符)。

        join()的作用和 split()作用刚好相反,用于将一系列子字符串连接起来。

        str.split() 见空格就分割

        str.split('1')见1就分割

        ' * '.join(str)   每一组之间插入*连接起来

cc= "to be or not to be"
print(cc.split())#见空格就分开
print(cc.split('be'))#见be直接拿出来
dd = ['sxt','sxt100','sxt200']
print('*'.join(dd))#在每组之间插入*

输出结果:

['to', 'be', 'or', 'not', 'to', 'be']
['to ', ' or not to ', '']
sxt*sxt100*sxt200

        #常用函数

len(a)字符串长度
a.startwith()以指定字符串开头
a.endwith()以指定字符串结尾
a.find()第一次出现指定字符串的位置
a.rfind()最后一次出现指定字符串的位置
a.count()指定字符串出现了几次
a.isalnum()所有字符全是字母或数字

ccc="""abcdddefghijklmnopqrstuvwxyz"""
print(len(ccc))
print(ccc.startswith("abcd"))
print(ccc.endswith('xyz'))
print(ccc.find('h'))
print(ccc.rfind('j'))
print(ccc.count('d'))
print(ccc.isalnum())

输出结果:

 28
True
True
9
11
3
True

  • 元组

        #Tuple  元组

        元组中的元素无法修改,但可以包含对象,列如list 元组写在小括号里,元素用,分开,定义只有一个元素的元组,也必须加”,“

t1=("abcd",789,2.236,'rabit',70.2)
t2=(2,)
t21=(2)
t3=(1,["asss",2],56)
t4=()#空元组
t3[1][0]="S"
print(t1)
print(t2)
print(type(t2))#有一个元素必须加逗号的原因
print(type(t21))
print(t3)

        #二维元组 tuple

        tuple[第一层][第二层]...    

输出结果:

('abcd', 789, 2.236, 'rabit', 70.2)
(2,)
<class 'tuple'>
<class 'int'>
(1, ['S', 2], 56)

        #切片(同理)

        最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2.直到-len(str)为止。

        最左侧第一个字符,偏移量是 0,第二个偏移量是 1.直到 len(str)-1为止。

t1=("abcd",789,2.236,'rabit',70.2)
print(t1[1:3])
print(t1[-2])
print(t1[1:5:2])

输出结果:

(789, 2.236)
rabit
(789, 'rabit')

        #其他

        del tuple   删除整个元组,不能删除元素 

        count 记数

        强制转换  tuple(list)

t5=(1,1,1,1,2,2,6,6)
print(t5.count(1))
print("/************************")
#强制转换
list=[1,2,"ff"]
t=tuple(list)
print(t)
print(type(list))
print(type(t))

输出结果:

(1, 2, 'ff')
<class 'list'>
<class 'tuple'>

  • 字典

        #dic  字典   大括号表示

        dic={"key":value,....}     键-值—(key,value)  键具有不变性,键必须唯一

        #访问

        dic["key"]  直接访问不存在的key,会报错

        dic.get(key) 利用get()访问不存在的key,会返回none

        dic.get(key,自定义返回值) 访问不存在的key,会返回自定义的值

dic1={"A":95,"B":"baba","C":20,"D":"ezz","E":1}
print(dic1["A"])#访问  dic[key]
#访问不存在的key,直接访问会出错
#print(dic1[F])
print(dic1.get("F"))#使用get访问不存在的键,默认返回none
print(dic1.get("l",88))#get(key,设置返回值) 此键默认返回88

输出结果:

95
None
88

        #遍历

       遍历键   for key in dic.key():

                        print(key)

       遍历值  for value in dic.values():

                        print(value)

        遍历键与值 for key,value in dic.items():

                                 print("key is %s,value is %s"%(key,value))

        

dic1={"A":95,"B":"baba","C":20,"D":"ezz","E":1}
for key in dic1.keys():#遍历键
    print(key)
print("*****")
for value in dic1.values():#遍历值
    print(value)
print("*****")
for key1,value1 in dic1.items():
    print("key is %s,value is %s"%(key1,value1))

输出结果:

A
B
C
D
E
F
*****
sha
baba
20
ezz
1
ssss
*****
key is A,value is sha
key is B,value is baba
key is C,value is 20
key is D,value is ezz
key is E,value is 1
key is F,value is ssss
 

        #其他函数

        (1)增

        dic[new key]=new value

        (2)删

        del dic[键] 删除该键及其对应的值

       del dic 直接删除字典

       clear 清空字典元素

      (3)改

        dic["key"]='new value'

      (4)查

        dic.keys()#得到所有的键(以列表形式)

        dic.values() #得到所有的值(以列表形式)

        dic.items() #得到所有的项(以列表(含有元组)形式)

dic1={"A":95,"B":"baba","C":20,"D":"ezz","E":1}
dic2={"a":2,"s":56,"sa0":26}
dic1["F"]="ssss"
print(dic1)
print("***************************")
dic2={"a":2,"s":56,"sa0":26}
#del dic[键]  删除该键及其对应的值
del dic2["s"]
print(dic2)
#del dic 直接删除字典
#del dic2
#print(dic2)
# clear 清空字典元素
dic2.clear()
print(dic2)
print("*********************")
dic1["A"]='sha'
print(dic1)
print("******************")
print(dic1.keys()) #得到所有的键(以列表形式)
print(dic1.values()) #得到所有的值(以列表形式)
print(dic1.items()) #得到所有的项(以列表(含有元组)形式)
print("*********************")

输出结果:

{'A': 95, 'B': 'baba', 'C': 20, 'D': 'ezz', 'E': 1, 'F': 'ssss'}
***************************
{'a': 2, 'sa0': 26}
{}
*********************
{'A': 'sha', 'B': 'baba', 'C': 20, 'D': 'ezz', 'E': 1, 'F': 'ssss'}
******************
dict_keys(['A', 'B', 'C', 'D', 'E', 'F'])
dict_values(['sha', 'baba', 20, 'ezz', 1, 'ssss'])
dict_items([('A', 'sha'), ('B', 'baba'), ('C', 20), ('D', 'ezz'), ('E', 1), ('F', 'ssss')])
*********************

  • 集合

        #定义

        set={ }  集合无序性,无重合

set1=[1,"6566"]#定义set1=[]中括号
print(set1[0])#调用
s=set([1, 1, 1, 1, 11, 12, 2, 2, 22, 2])#强制转换为集合
print(s)#集合无序性  无重合

输出结果:

1
{1, 2, 11, 12, 22}
 

  • 函数

        #函数定义

        def  f(参数):

                内容

                return 返回值(可以多个)

def f1():#不带参
    print("*"*10)
    print("函数定义")
    print("*"*10)
def f2(a,b):#带参
    c=a+b
    print(c)
def f3(a,b):#返回值
    return a+b,a-b#同时返回两个

        #函数调用

        f(参数)

f1()
f2(2,3)
print(f3(5,6))

        #变量类型

        全局变量:主函数定义的变量

        局部变量:函数里定义的变量

        在函数中修改全局变量:global  m

m=100#全局变量
def t1():#局部#bian变量
    m=150
    print("t1 of m:%d"%m)

t1()
print("m:%d"%m)
def t2():
    global m#在函数中修改全局变量
    m=200#定义为global 为全局变量
    print("t2 of m:%d"%m)
t2()
print("m:%d"%m)

输出结果:

t1 of m:150
m:100
t2 of m:200
m:200

  • 文件

        #打开  读写 

#f=open("文件名","模式")
f1=open("t1.txt","w")#打开文件,写入模式,若为这个文件,则新建
f1.write("hello worldhello worldhello world\nhello worldhello worldhello world\nhello worldhello worldhello worldhello world")#写入文件
f1.close()#关闭文件
f2=open("t1.txt","r")#只读,读文件,若文件不存在,则报错
a=f2.read(5)#读5个字符
print(a)
b=f2.read(6)#继承后面依次往后排
print(b)
c=f2.readlines()#继承上面,每一行按列表形式输出
print(c)
#f.readline 继承上面,一行一行输出
f2.close()

输出结果:

hello
 world
['hello worldhello world\n', 'hello worldhello worldhello world\n', 'hello worldhello worldhello worldhello world']

        #os应用

        获取目录或文件名

filename = '/1234/year/month/day/hello.jpg'
print(os.path.basename(filename))
print(os.path.dirname(filename))

hello.jpg
/1234/year/month/day

        返回指定目录下的所有文件名和目录名 ,返回的是一个列表

print(os.listdir('img'))
['file1']

        创建目录【 mkdir / mkdir -p】

os.mkdir('img')
os.makedirs('img/file1/file2')

        可以删除多层递归的空目录,若目录中有文件则无法删除

os.removedirs('img/file1/file2')

         不能递归删除目录,一层一层删

os.rmdir('img')
 
OSError: [Errno 39] Directory not empty: 'img'

        创建文件 删除文件

os.mknod('00_ok.txt')
os.remove('00_ok.txt')

        文件重命名

os.rename('data.txt','data1.txt')

        判断文件或目录是否存在

print(os.path.exists('ips.txtyyyy'))
print(os.path.exists('/home/kiosk/PycharmProjects/2019python/ips.txt'))

False
True
  • 异常处理

#捕获异常
try:
    print("-------------------1")

    f1=open("t8.txt","w")

    print("-------------------2")
except IOError:
    print("error")
finally:#必执行
    print("文件关闭")
    f1.close()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yoin.

感谢各位打赏!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值