自用python基础1

一、Python的基础语法知识

1.1 变量

  • 变量是一个代号,它代表的是一个数据。

  • 变量名可以由任意数量的字母、数字、下划线组合而成,但不可以数字开头。

数据类型的查询

name = 'Tom'
number = 88
print(type(name))    #<class 'str'>
print(type(number))  #<class 'int'>

数据类型的转化

#str()函数能将数据转换成字符串。还有int()、float()函数。
#int()函数转换浮点型数字,直接舍去小数点后面的数,保留整数部分。
a = 88
b = str(a)
print(type(a))    #<class 'int'>
print(type(b))    #<class 'str'>

1.2数据类型

数字(int)

正整数、负整数、0。

浮点型数字(float)

带有小数点的数字。

字符串(string)

由字符连接起来的组合。

  • 你也可以左键选中我们需要注释的代码,松开,按:Ctrl+/,就完成相同效果注释。(没用)

  • 单引号和双引号不能跨行使用,三重引号可以跨行,并且会保留字符串中的格式。

print(520)    #整型数字,可参与算数运算
print('520')  #字符串,不可参与算数运算
  • 字符串 + 是拼接, *是 复制 ,-和/不行

a = 'Hello','CSDN'
b = 'Hello''CSDN'
c,d= 'Hello','CSDN'
print(a)    #('Hello', 'CSDN')
print(b)    #HelloCSDN
print(c,d)  #Hello CSDN
print(c+d)  #HelloCSDN
print(b[0:-2])    #HelloCS
print(c[0:-3])    #He
print(d[0:-1])    #CSD
print(c*2,d*2)    #HelloHello CSDNCSDN
print((c+d)*2)    #HelloCSDNHelloCSDN
e='Love CSDN 1314'
print(e[0],e[5])          #L C
#输出指定索引位置的字母
print(e[0],e[-2],e[3])    #L 1 e
#Python与C语言字串符不同的地方在于Python字串符是不可以被改变的,
#如果向一个指定索引赋值,那么将会错误
  • 如果你想换行转义输出,你可以在要转义的字串符之间加个\n,但在字串符前加个r将会是原字串符输出。

可以使用 \ 作为转义字符,通过转义字符,可以在字符串中使用一些特殊的内容
\' 表示'
\" 表示"
\t 表示制表符
\n 表示换行符
\\ 表示反斜杠
\uxxxx 表示Unicode编码
print('Hello,\nCSDN')
print(r'Hello,CSDN')#加了r后转义字符失效

运行结果:
Hello,
CSDN
Hello,CSDN

列表(List)

列表名 = [元素1, 元素2, 元素3, ……]

在列表中,数值可以类型不同,但是除数字以外其他任何数值都必须要用单引号括起。

在其他语言中通常叫做数组,专门用来存储一组数据。

#第一种方式
name_list = []  OR name_list = ['tom','jack']
#第二种方式
data_list = list()

遍历

name = ['张三', '李四']
for i in name:
    print(i)

统计

列表的元素个数

a = len(class1)
print(a)    #5

提取

列表的多个元素——列表切片

#左闭右开
class1 = ['孙悟空','沙和尚','唐僧','猪八戒','观音菩萨']
a = class1[1:4]
print(a)    #['沙和尚','唐僧','猪八戒']

a = class1[1:]     #提取第2个到最后一个
a = class1[-3:]    #提取倒数第3个到最后一个
a = class1[:-2]    #提取倒数第2个之前的所有元素,不包括倒数第2个

查询

列表可以用索引来用数据

name_list = ['张三', '李四']
print(name_list[0]) # 张三
print(name_list[1]) # 李四

count

data_list = ['python', 'java', 'python', 'php']
print(data_list.count("python"))  #2

插入

append(数据)

val_list = ["Web自动化", "UI自动化", "接口自动化"]
val_list.append("APP自动化")
print(val_list) 
# ['Web自动化', 'UI自动化', '接口自动化', 'APP自动化']
ps:
可以插入的各种不同类型的数据,比如数字 字典 元组

insert(位置,数据)

abc = [ ‘yinsheng’, ‘jiayou’, 1111, (11, 22, 33), {‘abc’: 456} ]
abc.insert(0,{“key”:1})
print(abc)
#[ {‘key’: 1}, ‘yinsheng’, ‘jiayou’, 1111, (11, 22, 33), {‘abc’: 456} ]

extend()

使用新的序列来扩展当前序列,需要一个序列作为参数,它会将该序列中的元素添加到当前列表中

stus.extend(['唐僧','白骨精'])
相当于
stus += ['唐僧','白骨精']
删除

remove()

# 删除指定值得元素,如果相同值得元素有多个,只会删除第一个
stus = ['孙悟空','猪八戒','沙和尚','唐僧','猪八戒']
stus.remove('猪八戒')  
print(stus)  #['孙悟空','沙和尚','唐僧','猪八戒']

pop (列表索引号)

val_list = ["Web自动化", "UI自动化", "接口自动化"]
val = val_list.pop(0)
print(val, val_list) 
# web自动化,['UI自动化', '接口自动化']
ps:
不指定位置号,那么默认删除最后一个

clear()

stus = ['孙悟空','猪八戒','沙和尚','唐僧']
stus.clear()    #清空序列  []

排序

reverse() 反转列表

my_list = [10,1,20,3,4,5,0,-2]
print('修改前',my_list)    #[10, 1, 20, 3, 4, 5, 0, -2]
my_list.reverse()
print('修改后',my_list)    #[-2, 0, 5, 4, 3, 20, 1, 10]

sort() 默认reverse=false

sort(reverse=false) #升序

sort(reverse=true) #降序

val_list = [8, 100, 30, 10, 40, 2]
val_list.sort()
print(val_list)    #[2, 8, 10, 30, 40, 100]
val_list.sort(reverse=True)
print(val_list)    #[100, 40, 30, 10, 8, 2]

sorted() 临时排序

val_list = [8, 100, 30, 10, 40, 2]
b= sorted(val_list)
print(val_list)    #[8, 100, 30, 10, 40, 2]
print(b)           #[2, 8, 10, 30, 40, 100]

嵌套

student_list = [ ["张三", "18", "功能测试"], {"key":1,"key1":2}, (11,222,333) ]
print(student_list[1]["key1"])    #2
print(student_list[0][1])         #18
print(student_list[2][1])         #222

列表与字符串的相互转换

#引号中的内容是元素之间的连接符,如“,” “;”等
#将class1转换成一个用逗号连接的字符串
class1 = ['孙悟空','沙和尚','唐僧','猪八戒','观音菩萨']
a = ','.join(class1)
print(a)    #孙悟空,沙和尚,唐僧,猪八戒,观音菩萨
#使用空格作为分隔符,将字符串‘hi hello world’拆分成列表
a = 'hi hello world'
print(a.split(' '))    #['hi', 'hello', 'world']

例题

a = ['a','b','c',3] 
b = [4,7,'love','to','lwl',',','never','change']

print(a,b)    #['a', 'b', 'c', 3] [4, 7, 'love', 'to', 'lwl', ',', 'never', 'change']

print(a[0:1:3])    #['a']
#输出指定列表被切割后的指定数据

print(b[1:7])      #[7, 'love', 'to', 'lwl', ',', 'never']

print(a[3])        #3
#输出指定索引搜索的数据

print(b[7])        #change

a[0:3]='A','B','C'#修改列表中指定数据,即可以直接修改
print(a)           #['A', 'B', 'C', 3]

b.append(347)      #append()函数用于在制定列表末尾添加新数值
print(b)           #[4, 7, 'love', 'to', 'lwl', ',', 'never', 'change', 347]

a[1]=[]            #移除a列表中指定索引数据
print(a)           #['A', [], 'C', 3]
print('a列表数据个数:',len(a),'b列表数据个数:',len(b))#a列表数据个数: 4 b列表数据个数: 9  
#len()函数用于统计列表数据个数

c=[0,1]           #生成一个嵌入式列表
d=[2,3]
e=[c,d]
print(e)           #[[0, 1], [2, 3]]

和列表list 几乎差不多 只是不可以修改 但是这个不可以修改指的是指向永远不变。

  • 当元组不是空元组时,括号可以省略。

  • 如果元组不是空元组,它里边至少要有一个。

#第一种方式
user_info = ()  OR name_list = ('zhangsan',18,1.75)
#第二种方式
info_tuple = tuple()
ps:元组中只包含一个元素时,需要在元素后面添加逗号
如  data=(1,)

索引

tuple1 = (1, 2, 3)
print(tuple1[1]) #2

count

tuple1 = (1, 2, 3)
print(tuple1.count(3)) #1

解包

元组的特殊用法: 交换两个变量的值

num1 = 100
num2 = 200
num2,num1 = num1,num2
print(num1)  #200
print(num2)  #100

ps:
1.在Python中可以使用对应数据个数的变量,获取对应元组数据中的每一个元素
2.在Python中定义多个元素的元组数据时,小括号可以省略
3.借助以上两个特性,可以通过元组快速实现交换两个变量的值

解包

my_tuple = 10 , 20 , 30 , 40
a , b , *c = my_tuple
print(a,b,c)    #10 20 [30, 40]
a , *b , c = my_tuple
print(a,b,c)    #10 [20, 30] 40
*a , b , c = my_tuple
print(a,b,c)    #[10, 20] 30 40

字典(Dictionary)

字典[键]=值

字典名 = {键1:值1, 键2:值2, 键3:值3……}
  • 字典的值可以是任意对象。

  • 字典的键可以是任意的不可变对象(int、str、bool、tuple ...),但是一般我们都会使用str。

  • 字典的键是不能重复的,如果出现重复的后边的会替换到前边的。

test = dict()
test2 = {}

d = dict(name1='孙悟空',age1=18,gender1='男')
print(d)    #{'name1': '孙悟空', 'age1': 18, 'gender1': '男'}

#利用双值子序列
d = dict( [('name','孙悟饭'),('age',18)] )
print(d)    #{'name': '孙悟饭', 'age': 18}

增加和修改

info = {
"name": "tom",
"age": 18
}
info["salary"] = 100000
print(info) # {'name': 'tom', 'age': 18, 'salary': 100000}

pop(键) 删除

info = {
"name": "tom",
"age": 18,
"gender": "男" }
info.pop("gender")
print(info) # {'name': 'tom', 'age': 18}

get(键) 查询

info = {
"name": "tom",
"age": 18,
"gender": "男" }
print(info.get("name")) # tom
print(info.get("abc"))  # None

遍历

for key in 字典.keys()

#遍历得到所有键名
info = {
"name": "tom",
"age": 18,
"gender": "男" }
for key in info.keys():
    print(key)

for value in 字典.values():

#遍历得到所有的键对应的值
info = {
"name": "tom",
"age": 18,
"gender": "男" }
for value in info.values():
    print(value)

for k, v in 字典.items():

#遍历得到所有的键和值
info = {
"name": "tom",
"age": 18,
"gender": "男" }
for k, v in info.items():
    print(f"key={k} value={v}")
for i in info:
    print(i + ':' + str(info[i]))

运行结果:
key=name value=tom
key=age value=18
key=gender value=男
name:tom
age:18
gender:男

常用

添加

setdefault(key, default]) 可以用来向字典中添加key-value

#如果key已经存在于字典中,则返回key对应的value值,不会对字典做任何操作
#如果key不存在,则向字典中添加这个key,并设置value
d = dict([('name','孙悟饭'),('age',18)])
result = d.setdefault('name1','猪八戒')
result2 = d.setdefault('name','11111')
print(result) #猪八戒
print(result2)  #孙悟饭
print(d)  #{'name': '孙悟饭', 'age': 18, 'name1': '猪八戒'}
更新

update()

#将其他的字典中的key-value添加到当前字典中
#如果有重复的key,则后边的会替换到当前的
d = {'a':1,'b':2,'c':3}
d2 = {'d':4,'e':5,'f':6, 'a':7}
d.update(d2)
print(d) #{'a': 7, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
删除

del

d = {'a': 7, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
del d['a']
print(d)  #{'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
del d['e']
print(d)  #{'b': 2, 'c': 3, 'd': 4, 'f': 6}

popitem()

#随机删除字典中的一个键值对,一般都会删除最后一个键值对
#删除之后,它会将删除的key-value作为返回值返回
#返回的是一个元组,元组中有两个元素,第一个元素是删除的key,第二个是删除的value
#当使用popitem()删除一个空字典时,会抛出异常 KeyError
d = {'b': 2, 'c': 3, 'd': 4, 'f': 6}
result = d.popitem() 
print(result)  # ('f', 6)
print(d)  # {'b': 2, 'c': 3, 'd': 4}

clear()

d = {'b': 2, 'c': 3, 'd': 4}
d.clear() #{}
复制

copy()

# 该方法用于对字典进行浅复制
# 复制以后的对象,和原对象是独立,修改一个不会影响另一个
# 注意,浅复制会简单复制对象内部的值,如果值也是一个可变对象,这个可变对象不会被复制  意味着修改了这个可变对象的值之后 两个地方的值均变化  因为它不独立

d = {'a':{'name':'孙悟空','age':18},'b':2,'c':3}
d2 = d.copy() 
print(d2)    #{'a': {'name': '孙悟空', 'age': 18}, 'b': 2, 'c': 3}

d2['a']['name'] = '测试一想'
d2['b']=6
print(d2)    #{'a': {'name': '测试一想', 'age': 18}, 'b': 6, 'c': 3}

print('d = ',d , id(d))    #d =  {'a': {'name': '测试一想', 'age': 18}, 'b': 2, 'c': 3} 2363954785808
print('d2 = ',d2 , id(d2)) #d2 =  {'a': {'name': '测试一想', 'age': 18}, 'b': 6, 'c': 3} 2363954786168

in not in

元组(Tuble)

元组的定义和使用方法与列表非常类似,区别在于定义列表是使用的符号是中括号[],定义元组时使用的符号时小括号(),并且元组中的元素不可修改。但是这个不可以修改指的是指向永远不变。

  • 当元组不是空元组时,括号可以省略。

  • 如果元组不是空元组,它里边至少要有一个。

#第一种方式
user_info = ()  OR name_list = ('zhangsan',18,1.75)
#第二种方式
info_tuple = tuple()
ps:元组中只包含一个元素时,需要在元素后面添加逗号
如  data=(1,)

索引

tuple1 = (1, 2, 3)
print(tuple1[1]) #2

count

tuple1 = (1, 2, 3)
print(tuple1.count(3)) #1

解包

元组的特殊用法: 交换两个变量的值

num1 = 100
num2 = 200
num2,num1 = num1,num2
print(num1)  #200
print(num2)  #100

ps:
1.在Python中可以使用对应数据个数的变量,获取对应元组数据中的每一个元素
2.在Python中定义多个元素的元组数据时,小括号可以省略
3.借助以上两个特性,可以通过元组快速实现交换两个变量的值

解包

my_tuple = 10 , 20 , 30 , 40
a , b , *c = my_tuple
print(a,b,c)    #10 20 [30, 40]
a , *b , c = my_tuple
print(a,b,c)    #10 [20, 30] 40
*a , b , c = my_tuple
print(a,b,c)    #[10, 20] 30 40

集合(Set)

集合时一个无序的不重复序列,可使用大括号{}来定义,也可以使用set()函数来创建集合。

a = set()
print(type(a))
a = {1,3,4}
print(type(a))

将字符串、列表、元组、字典转化为集合

s = set('hello')
print(s) # {'l', 'o', 'e', 'h'}

s = set([1,2,3,4,5,1,1,2,3,4,5])
print(s) # {1, 2, 3, 4, 5}

s = (1,2,3,4)
print(set(s)) # {1, 2, 3, 4}

s = set({'a':1,'b':2,'c':3}) 
print(s)  # {'a', 'b', 'c'}

常用

in not in

使用in和not in来检查集合中的元素

s = {'a' , 'b' , 1 , 2 , 3 , 1}
print('c' not in s)  #True
print('a' in s)    #True

add()

s = {'a' , 'b' , 1 , 2 , 3 , 1}
s.add(10)
print(s) #{1, 2, 3, 'a', 10, 'b'}

update()

update() 将一个集合中的元素添加到当前集合中

update()可以传递序列或字典作为参数,字典只会使用键

s = {'a' , 'b' , 1 , 2 , 3 , 1}
s2 = set('hello')
s.update(s2)
print(s)  #{1, 2, 3, 'o', 'e', 'a', 'h', 'b', 'l'}
s.update((10,20,30,40,50))
print(s)  #{1, 2, 3, 'o', 40, 10, 'e', 'a', 'h', 50, 20, 30, 'b', 'l'}
s.update({10:'ab',20:'bc',100:'cd',1000:'ef'})
print(s)  #{1, 2, 3, 100, 'o', 40, 10, 'e', 1000, 'a', 'h', 50, 20, 30, 'b', 'l'}

pop()

pop()随机删除并返回一个集合中的元素

s = {'a' , 'b' , 1 , 2 , 3 , 1}
result = s.pop()  
print(result) #1
print(s)  #{2, 3, 'a', 'b'}

remove()

s = {'a' , 'b' , 100 , 2 , 3 , 100}
s.remove(100)
print(s)  # {2, 3, 'b', 'a'}

clear()

copy()

1.3 运算符

算数运算符和字符串运算符

+:加法,两个变量相加求和
-:减法,两个变量相减求差
*:乘法,变量相乘求积
/:除法,变量相除求商
**:次方,求变量(a)的n次幂->(a)ⁿ,可以用pow()函数代替
//:整除,取除法后的整数部分
%:取模,得到除法结果第一位余数

比较运算符

< :小于,用于判断变量是否小于常量
> : 大于,用于判断变量是否大于常量
>= :大于或等于,用于判断变量是否大于或等于常量
<= :小于或等于,用于判断变量是否小于或等于常量
== :等于,用于判断两个常量是否相等
!= :不等于,用于判断两个常量是否不等于

赋值运算符

逻辑运算符

and:逻辑与,左右都为True才返回Ture
or:逻辑或,左右都为False才返回False
not:逻辑非,右侧的值为True时返回False,为False时返回True

1.4控制语句

if语句

if条件:
    代码
else:
    代码
if条件:
    代码
elif条件:
    代码
else:
    代码

for语句

class1 = ['李白', '王维', '孟浩然']
for i in class1:
    print(i)
for i in range(3)    #0,1,2
    print('第', i+1, '次')

while语句

while条件:
    需要重复的代码
a = 1
while a < 3:
    print(a)
    a = a + 1
#第一次循环:a=2
#第二次循环:a=3
#第三次循环:a=4

可以搭配True永久循环,PyCharm中【Ctrl+F2】可以强制停止。

1.5函数

函数就是把具有独立功能的的代码块组织成一个小模块,在需要时直接调用。

内置函数

Python的开发者已经编写好的函数,我们可以直接使用。

len()

可以统计列表的元素个数,字符串的长度/字符的个数

a = '123abc'
print(len(a))    #6

字符串.replace(要查找的内容,要替换为的内容)

主要用于在字符串中进行查找和替换

a = '<em>面朝大海,</em>春暖花开'
a = a.replace('<em>', '')
a = a.replace('</em>', '')
print(a)    #面朝大海,春暖花开

字符串.strip()

主要用于删除字符串首尾的空白字符(包括换行符和空格)

a = '    面朝大海 春暖花开    '
a = a.strip()
print(a)    #面朝大海 春暖花开

字符串.split('分隔符')

主要作用是按照指定的分隔符将字符串拆分为一个列表

today = '2020-04-21'
a = today.split('-')
print(a)    #['2020', '04', '21']

字符串.format(要格式化的值)

a = '{}, {}!'.format('Hello', 'Python')
print(a)    #Hello, Python!

自定义函数

用户按照需求自己编写的函数

函数的定义与调用

def 函数名(参数):
    实现函数功能的代码

1.6 模块的导入

import语句导入法

会导入指定模块中的所有函数,使用于需要使用指定模块中的大量函数的情况。

import 模块名

from语句导入法

用import语句全部导入后会导致程序运行速度较慢吗,将程序打包后得到的文件体积也会很大。from可以指定要导入的函数。

from 模块名 import 函数名
#模块名或函数名很长
import numpy as np #导入NumPy模块,并将其简写为np
from math import factorial as fc #导入math模块中的factorial()函数,并简写为fc
from 模块名 import * = import 模块名
#优点:在调用模块中的函数时无需添加模块名前缀
#缺点:不能使用as保留字来简化函数名

整理的好乱。。。。

引入:

(27条消息) Python入门教程(从小白到高级)(新版)_Python菜中菜的菜鸟的博客-CSDN博客_python教程

(37条消息) Python基础知识大全(适用于全面复习Python语法知识)_BRAVE_Fighting的博客-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值