工具

postman测试接口工具下载:https://www.apipost.cn/download.html
pycharm下载:https://www.jetbrains.com/pycharm/download/

1.python概述

python是一门解释型,面向对象的高级编程脚本语言
python开源免费,支持交互,可跨平台

特性:
开源,易于维护
可移植
可扩展,可嵌入
标准库

python缺点:
虽然python有许多优点,但也有缺点如

  • 运行速度慢:python是解释型语言,运行时编译为机器码非常耗时,而c语言是运行前直接编译为cpu能执行的机器码
  • 代码不能加密:解释性语言发布程序就是发布源代码,而c语言发布的则是机器码,不可能根据机器码推出C语言

python应用:
web开发
自动化脚本
桌面软件
科学计算
服务器软件



2.第一个程序hello world

  1. >>> print("hello python")
  2. hello python
  3. >>> import this
  4. The Zen of Python, by Tim Peters
  5. Beautiful is better than ugly.
  6. Explicit is better than implicit.
  7. Simple is better than complex.
  8. Complex is better than complicated.
  9. Flat is better than nested.
  10. Sparse is better than dense.
  11. Readability counts.
  12. Special cases aren't special enough to break the rules.
  13. Although practicality beats purity.
  14. Errors should never pass silently.
  15. Unless explicitly silenced.
  16. In the face of ambiguity, refuse the temptation to guess.
  17. There should be one-- and preferably only one --obvious way to do it.
  18. Although that way may not be obvious at first unless you're Dutch.
  19. Now is better than never.
  20. Although never is often better than *right* now.
  21. If the implementation is hard to explain, it's a bad idea.
  22. If the implementation is easy to explain, it may be a good idea.
  23. Namespaces are one honking great idea -- let's do more of those!
  24. 蒂姆·彼得斯的《蟒蛇禅》
  25. 美胜于丑。
  26. 显性比隐性好。
  27. 简单总比复杂好。
  28. 复杂总比复杂好。
  29. 平的比嵌套的好。
  30. 稀疏比密集好。
  31. 可读性很重要。
  32. 特殊情况不足以违反规则。
  33. 尽管实用胜过纯洁。
  34. 错误永远不应该悄无声息地过去。
  35. 除非明确沉默。
  36. 面对模棱两可的情况,拒绝猜测的诱惑。
  37. 应该有一种——最好只有一种——显而易见的方法来做到这一点。
  38. 尽管这种方式一开始可能并不明显,除非你是荷兰人。
  39. 现在总比没有好。
  40. 虽然永远不会比现在更好。
  41. 如果实现很难解释,那就不是个好主意。
  42. 如果实现很容易解释,这可能是一个好主意。
  43. 名称空间是一个非常好的主意——让我们做更多的工作吧!

3.pycharm的使用

3.1个性化标签设置

python<一>基础 - 图1
效果:

  1. #-*- codeing = utf-8 -*-
  2. #@Time : 2022/2/22 14:22
  3. #@Author : clq
  4. #@file : code02.py
  5. #@Software : PyCharm Community Edition


4.python基础内容

4.0注释
  1. #这是单行注释
  2. '''
  3. 这是多行注释
  4. 这是多行注释
  5. '''

4.1变量

变量:局部变量,自定义变量,全局变量
变量不要以数字开头

  1. age = 18 #整数型
  2. salary = 10000.000 #浮点数型
  3. name = "xiaohua" #字符串型

4.2关键字

关键字:特殊功能的标识符,已经被python内部使用过,不能再被定义

  1. import keyword
  2. print(keyword.kwlist)
  3. 输出:['False', 'None', 'True', 'and', 'as', 'assert', 'async',
  4. 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else',
  5. 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is',
  6. 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while',
  7. 'with', 'yield']

4.3格式化转换
  1. %d #带符号十进制整数 #注意%d针对于整数,不能针对于其它类型,其它同理
  2. %s #通过str()字符串转换格式化 #注意%s针对于字符串
  3. %f #浮点数
  4. %c #字符
  5. %o #八进制
  1. age = 18
  2. name = "xiaohua"
  3. sex = "famale"
  4. #%d使用
  5. print("我的年龄是 %d 岁" %age)
  6. #%s使用
  7. print("我是来自%s,喜爱%s"%("湖北","跑步"))
  8. 输出:
  9. 我的年龄是 18 岁
  10. 我是来自湖北,喜爱跑步

4.4\的使用
  1. \t #对齐
  2. \n #换行
  3. end #多行符号拼接
  4. sep #单行符号拼接
  5. \\ #反斜杠的字符
  6. \" #双引号
  7. \a #响铃
  8. \b #退格
  9. \r #回车
  1. print("hello\tworld")
  2. print("hello\nworld")
  3. 输出:
  4. hello world
  5. hello
  6. world
  7. #end的使用
  8. print("www",end="")
  9. print("baidu")
  10. 输出:wwwbaidu
  11. #sep的使用
  12. print("www","baidu","com",sep=".")
  13. 输出:www.baidu.com

4.5类型装换

一般我们用input函数,不管是a,1,1.1,输出的类型均是str类型,因此我们需要自定义类型,把str类型转换为我们需要的类型

  1. number = str(input("请输入一个str字符:"))
  2. print(type(number))
  3. number = int(input("请输入一个int字符:"))
  4. print(type(number))
  5. number = float(input("请输入一个float字符:"))
  6. print(type(number))

4.6运算符

a=100 b=50

= 等于 等于返回true 不低于返回false
!= 不等于 不等于返回true 等于低于返回false
+= 加法赋值运算 a +=b 等同 a=a+b
-= 减法赋值运算 a -=b 等同 a=a-b
*= 乘法赋值运算 a =b 等同 a=ab
/= 除法赋值运算 a /=b 等同 a=a/b
//= 取整除法赋值运算 a //=b 等同 a=a//b
%= 取摸赋值运算 a %=b 等同 a=a%b
& 俩边均成立为1
| 左边或右边成立为1
and a and b 返回 100
or b or a 返回 50
not not(a and b) 返回false
in 指定成员运算 a在b的序列里 则返回true
not in 不指定成员运算 a不在b的序列里 则返回true
is 判断是否引用同一对象
is not 判断是否引用不是同一对象

4.7优先级
  1. 从高到底
  2. **
  3. * / % //
  4. + -
  5. >> <<
  6. &
  7. ^ |
  8. <= <> >=
  9. = %= /= //= -= += *= **=
  10. is is not
  11. in not in
  12. and or ont

4.8判断语句

条件判断

  1. if x1:
  2. print("第一次判断")
  3. elif x2:
  4. print("第二次判断")
  5. else:
  6. print("上面俩条件均不符合的结果")
  7. #条件均可套娃,只有else条件不行

随机猜数游戏

  1. import random #导入一个随机模块
  2. x = random.randint(0,100) #定义一个0-100的随机数
  3. number = int(input("请手动输入一个猜的数字:")) #定义一个手动输入的随机数
  4. if x == number:
  5. print("恭喜你猜对了")
  6. else:
  7. print("猜错了,正确数字是:",x)

4.9循环语句

for循环格式

变量是可以有多个的

for i in range():
    print(i)

#伪代码含义
for 变量 in (1,10,5): 从1到10的范围,5:跳过前面五位输出
    print("打印输出")

范围循环

for i in range(0,10,5):
    print(i)

列表循环

string = ["huawei","oppo","vovi","iphone"]
for i in range(len(string)):
    print(i,string[i])

手动输入数字求累加和

number = 0
i = int(input("手动输入初始值为:"))
counter = int(input("手动输入结尾值为:"))
for i in range(i,counter+1):
    number += i
    print("1到 %d 的总和为: %d " % (counter, number))

while循环格式

i = 0
while i < 10:
    print("i=",i)
    i += 1

while循环判断

#while循环也是可以加判断的
#手动输入的数字大于等于3则触发else语句打印相应数字
x = int(input("手动输入一个数字"))
while x <3:
    print(x)
    x += 1
else:
    print(x)

手动输入数字求累加和

i = int(input("手动输入初始值为:")) 
number = 0
counter = int(input("手动输入结尾值为:"))
while i <= counter:
    number += i
    i+=1
    print("1到 %d 的总和为: %d "%(counter,number))

break continue pass

break 跳出整个循环
continue 跳出当前循环 执行下一个循环
pass 占位

九九乘法表

#for循环方法
for i in range(1,10):
    for j in range(1,i+1):
        print("%d*%d=%2d"%(j,i,j*i),end=" ")
    print(" ")

#while循环方法
i=1
while i<10:
    j=1
    while j<=i:
        print("%d*%d=%2d"%(j,i,j*i),end=' ')
        j+=1
    print("")
    i+=1

5.python数据类型

5.1字符串
#字符串可以用 'a'  "a"   """a""" 来定义
a = 'a'
b = "b"
c = """c"""

#返回字符串长度:len()

5.2列表

[起始位置:结束位置:步进值] 起始位置:第一个字符串对应的是lenght 0

范围列表

str = ['huawei','oppo','vivo','xiaomi']
print(str[0])
print(str[0:2])


输出:
huawei
['huawei', 'oppo']

切片列表

str = ['huawei','oppo','vivo','xiaomi']
print(str[2:])
print(str[:2])

输出:
['vivo', 'xiaomi']
['huawei', 'oppo']

拼接列表以及字符串

str = ['oppo']
print(str[0] + " is 4000¥")

str = 'hello'
print(str + 'world')

列表循环

name = ['蔡','天','美']
for i in name:
    print(i)


name = ['蔡','天','美']
i = 0
while i < len(name):
    print(name[i])
    i += 1

列表的增删改查(重点)

append() #添加列表尾部 extend() #列表的追加 insert(索引值,插入内容) #列表的插入 del(索引值) 通过索引删除指定的元素 remove 移除指定的匹配 没有找到会出现异常 list[] = x #通过下标原地修改 sort #列表排序 reverse #列表反转 in 查在…. ont in 查不在…. x.read().decode(‘utf-8’) #针对读的内容规范化

                            #列表的增操作

salary = ['100','200','300']      
salary.append(500)                    //尾部添加内容
salary.extend("T")                   //追加扩展内容
salary.insert(0,'500')               //通过索引位置插入内容    



                            #列表的删操作

movie = ['斗罗大陆','斗破苍穹','画江湖']
del movie[2]                //删除索引值位置的画江湖
movie.pop()                 //删除结尾的内容
movie.remove("斗破苍穹")     //删除指定的内容,不能删除所有重复的内容




                            #列表的改操作
movie = ['斗罗大陆','斗破苍穹','画江湖']
movie[0] = "斗罗大陆2"      //修改指定内容





                            #列表的查操作
movie = ['斗罗大陆','斗破苍穹','画江湖']
i = input("请手动输入要查询的电影:")
if i in movie:
    print("已经查询到了该电影")
else:
    print("没有查到该电影")
#也可以通过index查找 范围为 [ )




                         #列表的排序
salary = [1,2,3,4,5,6]
salary.reverse()    //列表的反转               
print(salary)

salary = [1,5,4,9,8,7,6,]
salary.sort()                  //列表升序          
print(salary)                   

salary = [1,5,4,9,8,7,6,]      //列表降序
salary.sort(reverse=True)
print(salary)

5.3元组

元组与list类似,但是单个元素不能修改,写在小括号里,逗号分隔 只有一个元素的话如:tup = (1,)

#一个元素的元组
tup01 = ('test',)
#多个元素的元组
tup02 = (1,2,3,4,5,6,7,8,9)

#增(俩个元组组合在一起)
tup01 = (1,2,3,4,5,6,7,8,9)
tup02 = (10,11,12,13,14)

tup = tup02 + tup01
print(tup)

#删(删除的整个元组变量)
del tup01
del tup02


#查
print(tup)  //查看整个元组
print(tup01.count("元素"))  //计算指定元素的个数
print(max(tup01))
print(min(tup01))
print(len(tup01))

列表转换为元组

str = ['test','haha']
print(tuple(str))

#输出:
('test', 'haha')

5.4字典

dict:字典,无序的对象集合,键值对(value - key)形式 不可变类型(key),唯一的

dict01 = {'name':'吴彦祖','age':'21','salary':'1000'}    #字典

print(dict01["name"])     #输出单个key信息
print(dict01)             #输出所有信息

#有时候我们查找信息的时候,不一定100%存在某个信息,因此会报错,如何避免出错呢?
print(dict01["test"])               #一定会报错,因为没有test这个键
print(dict01.get("test"))           #没有找到键,则返回none
print(dict01.get("test","【不好意思,没有该值】"))#如果不想返回none,手动添加想要返回的值

增删改查操作

                            #增操作
dict01 = {'name':'吴彦祖','age':'21','salary':'1000'}
ADDsex = input("请输入添加的性别:")

dict01['sex'] = ADDsex
print(dict01)

                            #删
del dict01                     //del删除的整个元组
print(dict01.clear())          //清空元组内容,返回none


                            #改
dict01['name'] = '李云龙'


                            #查
print(dict01.keys())    //查单个值
print(dict01.values())  //查单个键
print(dict01.items())   //查所有项

                          #循环遍历查看
for item in dict01.items():
    print(item)

                        #枚举查看元组(同时输出内容,以及下标值)
dict01 = {'name':'吴彦祖','age':'21','salary':'1000'}

for i,item in enumerate(dict01):
    print(i+1,item)

#输出
1 name
2 age
3 salary

5.5小结

image.png