python------杂项篇

一.运算符

1)innot in用来判断某个东西是否为它的子集,比如子字符串

name = "邱佳乐"
if "邱" in name:
    print("OK")
else:
    print("Error")
  1. and ,or, not
user = "qiujiale"
pwd = "babawan1"
v = user == "qiujiale" and pwd == "babawan1" or 1 == 1 and pwd == "123"
print(v)
上面表达式得出的结果是  True

对于 and,or,not这样的逻辑运算符,预算规则为从左到右以次运算,如果从左到右碰到 and运算符左端出现False则后面的逻辑判断都不需要计算,如果从左到右碰到or运算符左端出现True则后面的逻辑判断都不需要计算。

二.基本数据类型

1.数字----int

	在python3中不管数字有多大,数据类型都是int,下面列举,整形所用的常见的函数

①类型转换,将字符串类型强制转换为int类型

 a = "123"   
 b =  int(a)
 
 int(str number, int base)//将number字符串,以base为进制数进行转换,转换为int类型
 number = "0011"
 v = int(number,base = 2) // 按照二进制的方式转换

②bit_lenght,返回当前数字二进制表示时所需的最少位数

age = 10
r = age.bit_length();
print(r)

2.字符串-----str

①capitalize 将字符串的首字母大写

#首字母大写
test = "QiuJiale"
v = test.capitalize();
print(v)

②将字符串全部改为小写,casefold(),lower()方法
而casefold方法更牛逼,可以对许多未知字符对应小写

v1 = test.casefold()
print(v1)

v2 = test.lower()
print(v2)

③center方法,设置宽度,空白位置用第二个参数所表示的字符代替(ps:此字符的长度为一),默认为空格

v3 = test.center(30,"*")
print(v3)

④count方法

#计算子字符串在本字符串出现的次数,可以设置起始位置和结束位置
test = "sasdadfssgsa"
v = test.count('s',1,7)
print(v)

⑤endwith和startwith方法

#查看字符串是否以次字符串结尾或者开头,后面两个参数可以规定扫描字符串的开始和结束位置
v1 = test.endswith('a')
v2 = test.startswith('b')
print(v1)
print(v2)

⑥find方法

#寻找子字符串在字符串中第一次出现的位置,也可以设置查询的开始和结束位置
v3 = test.find('da',2,10)
print(v3)

⑦isdecimal,isdigit和isnumeric方法:判断当前输入的是否为数字,isdigit()可以识别更多特殊字符的数字。如“①”; 而isnumeric()可以识别中文更加强大
⑧isidentifier():判断字符创串中是否符合标识符的命名规范:如不能以数字开头等规范
⑨isprintable():判断字符创打印是否包含不可显示的字符,如“\t,\n”等转移字符
⑩ispace():判断字符串是否全部为空格
11.istitle判断字符串是否是标题,标题的各个单词的首字母为大写,title()方法可以将此字符串改为标题格式返回出来
12.join()方法:此字符串中每一个元素按照指定的元素进行拼接。

test = "邱佳乐"
v = '_'.join(test)
print(v)

13.Ljust和cente方法类似,填充字符且左对齐。center为中对齐,Rjust为右对齐。
14.lstrip,strip和rstrip方法:默认去掉空格和换行符。可以自己设置字符。则可以去掉左右两端的特殊字符。以特殊字符的子字符串都去掉。

test = "aaaa邱佳乐lsdahssadhak  a\t"
v = test.strip('a\t')
print(v)

15.maketrans()和translate()方法
maketrans()方法可以对两个字符串长度相等的字符串中的元素进行一一对应返回其对应关系。

test = "abdkaxbkzna"
m = test.maketrans("aeion","14785")
v = test.translate(m);
print(m)
print(type(m),v)
###############consle#########
{97: 49, 101: 52, 105: 55, 111: 56, 110: 53}
<class 'dict'> 1bdk1xbkz51

16.partition()和rpartition(), split()和rsplit()用于字符切割
前两个方法只能分割一次,保留分割符
后两个方法将字符串完全分割,不保留分割符,可以设置分割次数,
splitlines()方法是按换行符进行分割,后面设置True,False决定是否保留分割符。

列表可以取范围值

test = "Qjiale"
v = test[0:2]
print(v)

循环遍历列表元素

test = "Qjiale"
for item in test:
    print(item)

3.列表-----list

①列表中可以放入任何元素
列表创建: li = [1,"asda",[2,True],"helloworld"]
②列表可以使用切片方式进行访问print(li[1:3])
③列表可以使用切片的方式进行修改li[1:3] = [1,2]
④列表可以使用切片的方式进行删除 del li[1:3]
列表的删除,访问,修改都可以对单个元素使用
⑤对上面的li 列表访问列表中的列表的元素可以是li[2][1]

4.元组 ----tuple

  1. 元组中的元素不可用被修改,不能增加或者删除,针对的师第一级元素。
  2. ex: li = (11,22,"qiu",True) 创建一个元组

5.字典 ----dict

  1. 键值对元素,无序不重复的集合。键Key的值是唯一的
  2. ex:li = { "k1":"v1", "k2":"v2" }
  3. 键Key的取值只能是不可概念的数据(能hashcode的对象)
  4. 查询:li = { "k1":"v1", "k2":"v2" } print(li["k1"]) #直接输入key值 print(li.get('k2')) #使用get方法
  5. 字典循环遍历:字典在for循环时,默认拿到的是key值
for item in li:
    print(item)  #拿到Key值
    print(li[item])  #根据Key值获取value值
for item in  li.values():  #item拿到的是value值
for item in  li.keys():   #item 拿到的是key值
for k,v in  li.items():  # k取得key值,v取得value值

6.集合----set

  1. 由不同元素的几个,无序且可hash的值。不可变类型
  2. ex:s = {1,2,3,True} 创建一个集合
  3. 集合常用的运算
    并集 S|S1 S.union(S1)
    交集 S&S1 S.intersection(S1)
    差集 S-S1 S.difference(S1)
    交差补集 S^S1 S.symmetric_difference(S1)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章