Python基本语法:
条件判断语句
if True: print("True") print("ansewe")//同一个层次的代码缩进要一致,python语言用同缩进的多少表示是否为同一层次,是否为一个代码段 else: print("False")
|
score = 87 if score >=90 and score <=100: print("A") elif score >=80 and <90: print("B")
|
引入库(随机数)
import random x = random.randint(0,2) print("%d"%x)
|
x=input(请输入数字) y=random.randint(0,2) if x=y: print(你们出的一样) elif x=0 and y=1 : print("我出的是剪刀,你输啦")
|
for循环
for完有一个冒号记得填写
for i in range(5)://循环从0开始一共五次 print(i)
|
for i in range (0,10,3)//循环从0开始一直到10 每次增加3次 print(i)
|
for i in range (-10,-100,-30)//循环从-10开始一直到-100 每次减少30次 print(i)
|
对于字符
name="chengdu" for x in name: print(x)//针对字符,输出的是chengdu(有换行),不换行加一个,end=''
|
a=["aa","bb","cc","dd"] for i in range(len(a)) print(i,a[i])// 这里的len指的是输出a当中元素的个数,为四个所以循环为0-4,然后打印出来
|
while循环
i=0 while i<5: print("当前是第%d次执行循环"%(i+1)) print("i=%d"%i) i +=1
|
i=0 a=0 n=100 while i<=n: a=a+i i+=1
print("1-%d的和=%d"%(n,a)//1-100求和
|
count=0 while cout<5: print(count,"小于5") count +=1 else: print(count,"大于或等于5")//不止是if可以加else while也可以 //输出结果: 0 小于5 1 小于5 2 小于5 3 小于5 4 小于5 5 大于或等于5
|
break/continue/pass
break:终止循环
continue:本次循环终止
pass:纯属占位
字符串
word='this' sentence="this is a word" paragraphy=''' this is a paragarphy 可以换行 ''' print(word) print(sentence) print(paragraphy) //需要转义 的字符 \\ \' \"
|
字符串函数str
str="chengdu" print(str[0:6:2])// str[起始位置:结束位置:步进值(可选,默认为1)]
|
字符串相连接
str="chengdu" print(str+",你好")//打印chengdu,你好 print(str*3)//打印三次 print(r"hello\nchengdu")//前面有r 里面的内容会原样输出 比如\n就不会转义
|
字符串的常见操作
1.bytes.decode(encoding=”utf-8”, errors=”strict”
Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。
2.encode(encoding=’UTF-8’,errors=’strict’
以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’
3.isalnum()
如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
4.isalpha()
如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False
5.isdigit()
如果字符串只包含数字则返回 True 否则返回 False
6.isnumeric()
如果字符串中只包含数字字符,则返回 True,否则返回 False
7.join(seq)
以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
8.len(string)
返回字符串长度
9.istrip()
截掉字符串左边的空格或指定字符
10rstrip()
删除字符串末尾的空格
11split(str=””, num=string.count(str))
以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串
列表
定义+增加
namelist=[1,'huang',3]//定义一个列表 for name in namelist: print(name) //遍历输出namelist //使用while遍历输出数组 length=len(namelist) i=0 while i<length: print(namelist[i]) i+=1 //append在数字末尾增加一个值 //eg1. nametemp=input("请输入数字:") namelist.append(nametemp) for num in namelist: print(num) eg2. a=[1,2] b=[3,4] a.append(b)// 将列表当做一个元素加入到a列表中 //结果是 [1,2,[3,4]] extend(b) print(a) //结果是[1,2,3,4] //insert:指定下标位置插入元素 a=[0,1,2] a.insert(1,3) print(a)
|
删除
//del 在指定位置删除一个元素 a=[0,1,2] del a[2] for i in a: print(i) //pop() 弹出末尾最后一个元素 a.pop() //remove 直接删除指定内容的元素 a.remove(1)//如果有重复的数据比如[0,1,1,2]只删除找到的第一个
|
更改
查找
//使用条件判断语句 findnumeber=input("请输入你要查找的数字") if findnumber in a: print("在") else: print("不在") //使用index函数 a=["a","b","c","a","b"] print(a.index("a",1,4))//查找a这个元素在下标1-4都出现在哪里 结果返回的是数组下标,并且范围是左闭右开的 //使用count计数某个元素出现几次 print(mylist.count("c"))
|
拓展:
//排序和反转 a=[1,4,3,2,5] a.reverse() //将列表所有元素反转 a.sort() //升序排序 a.sort(reverse=Ture)//降序排序
|
//类二位数组: a=[[1,2],[3,4],[5,6]] print(a[0])//输出[1,2] print(a[0][0])//输出[1]
|
三个办公室,八个老师,随机分配到三个办公室并将其打印
import random offices=[[],[],[]] names=["a","b","c","d","e","f","g","h"] for name in names: index = random.randint(0,2) offices[index].append(name)
i=1 for office in offices: print("%d:%d"%(i,len(office))) i+=1 for name in office: print("%s"%name,end="\t") print("\n") print("-"*20)
|
元组
tup1=() //创建一个空的元组 tup2=(50)//此时不是元组 type为int tup3=(50,)//加一个逗号才能表示他是一个元组
|
函数
Requests库学习
导入requests模块
然后,尝试获取某个页面
r = requests.get('url')//get请求 r = requests.post('url',data={'key'='value'})//post请求
|
其他HTTP请求类型也是如此
传递URL参数
在url中传递数据:
Requests 允许你使用 params
关键字参数,以一个字符串字典来提供这些参数。举例来说,如果你想传递 key1=value1
和 key2=value2
到 httpbin.org/get
,那么你可以使用如下代码:
payload = {'key1':'value1','key2':'value2'} r = requests.get("http://httpbin.org/get",params=payload)
|
返回输出结果
print(r.url) //http://httpbin.org/get?key2=value2&key1=value1
|
**ps:**字典里的none值得键不会被添加到URL的查询字符串中
响应内容
读取服务器响应的内容:
import requests r = requests.get('URL') r.text print(r.text)
|
会话对象:
会话对象让你能够跨请求保持某些参数。它也会在同一个session实例发出的所有请求之间保持cookie。
跨请求保持一些cookie
s = requests.Session() r = s.get("http://httpbin.org/cookies") print(r.text)
|
参考文章:https://2.python-requests.org/zh_CN/latest/user/quickstart.html
https://2.python-requests.org/zh_CN/latest/user/advanced.html#advanced
python版本更换指令
1、字符串前加 f
字符串格式化(python 3.6 新增,类似于perl中的变量内插)
例: vers = ‘python 3.6’
f”该功能是{vers}新增”
返回:该功能是python 3.6新增
格式化的字符串文字前缀为”f”,类似str.format()。包含由花括号包围的替换区域。替换字段是表达式,在运行时进行评估,然后使用format()协议进行格式化。
2、字符串前加 u
例:u”我是含有中文字符组成的字符串。”
作用:后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。
3、字符串前加 r
例:r”\n\t\n”
返回:\n\t\n
作用:声明后面的字符串是普通字符串,相对的,特殊字符串中含有:转义字符 \n \t 什么什么的。
4、字符串前加 b
作用:python3.x里默认的str是unicode类,
py2.x的str是 bytes类,
b“我(python 3)的str是 bytes” 代表的就是bytes类 。
python2.x里, b前缀没什么具体意义, 只是为了兼容python3.x的这种