关于python的零散知识合集

关于python的零散知识合集

大家慢慢看慢慢收集

更新中~~

 

1.进制转换
    使用int方法可以将其他进制转换为十进制
    实例:int(‘12’,10)//第二个参数表示你当前的进制位,第一个参数是需要转为十进制的参数。
2.isalpha()
    n.isalpha()方法判断n是否为字母//无论大小写
3.python 标准库math中的pow()方法用于求一个数的n方
    例如:pow(3,3) //代表3的三次方
4.print(str(a1[i]) + ' ',end="")//print 方法里面加上参数end="" 表示不换行,默认是换行的。
5.在input的时候,不能在input()之前加上任何类型转换
6.判断一个字符是否在另外有个字符里面方法:
    (1)r'x' in r'xxxxx'
    (2)xasas.find(a)
7.判断奇数或偶数,num%2 ==0 为偶数反之为奇数
8.list.sort(cmp=None, key=None, reverse=False)  list 排序语法
    其中reverse 为 FALSE 为默认升序排序
    再就是如果reverse 为True 的话则为降序排序
9.a是一个list 然后我们要对立面的数进行运算,max(a)求列表a的最大值 min(a)求列表a的最小值 sum(a)求列表a 的值得数字和
10.判断一个list是否已经排序,使用sorted() ,记得这里需要额外判断正序和倒序
11.求和时候可以使用高斯公式,如果直接使用for循环求和的话,时间复杂度很高(O(n))
12.写题的时候都遇到while循环,try except
13.判断三条边是否可以组成一个三角形(任意两条边的和大于第三边,转换成计算机语言为:and)
14.python 中去重复,假定有一个list (有重复项)list_name = list(set(list_name))
15.在Python中没有switch – case语句。
16.input()键盘输入的时候可以指定类型
   n=int(input())
17.print(r'*'*n) // 可以打印多个*号
18.chr(i)  输出对应的ASKII码
19.#coding=utf-8 其实等价于 # -*- coding:UTF-8 -*-
20.python 中代码可以加分号,但不符合规范
21.python中一个文件就是一个模块啦
一个模块中想要使用另外一个模块的成员的时候,有以下几种方法:
    m1模块 m2为另外一个模块,m2中有成员x
    (1)import m2
    (2)from m2 import x
    (3)from m2 import x as s
22.python内置数据类型为:布尔、数字(整型、浮点型)、字符串、列表、元组、字典、集合
【数字】
整型进制表示
    十进制:正常
    二进制:0 1 表示
    十六进制:0X开头表示
    八进制:0O开头表示
浮点:在python中仅仅有双精度浮点(占8字节,16位有效保留位)
    e(E)用来表示10的次幂---科学计数法
复数:python是少数可以表述复数的语言,所以应用在统计领域很多
布尔:True False
数字类型之间的转换分为强转换和隐式转换
强转换为(int()\float()\bool())
隐式转换为主要发生在数字之间,规律为“谁大,转的时候就为谁”
23.a//b 表示地板除法,求小于a于b商的最大整数
24.比较运算符可用于任意类型的数据,但两端数据要相互兼容,既可以隐式转换
25.python中的逻辑运算符一共有三种:
    and 逻辑与
    or 逻辑或
    not 逻辑非
python的逻辑运算符采用了短路的设计
短路指的是:逻辑或 逻辑与 在计算过程中只要结果确定了,则不在再计算后面的表达式了,从而提高效率,有点像电路短路。
26.位运算是以二进位(bit)为单位进行运算的,操作数和结果都是整数类型的数据。【这里补码反码啥的需要注意】
27.赋值运算有很多
//= 
**= 
等等不需要惊讶
28.算数运算符>位运算符>关系运算符>逻辑运算符>赋值运算符
29.listdata.remove(maxdata)  // 可以删除list 中的元素,通过值删除,前提是这个值必须存在!
30.字符串反转特性:
 str1 = 1234
 str2 = str1[::-1]
 str2 = 4321
31.list 判断一个元素是否在list中 ,if datalist.count('value') > 0: xxx;
32.for 以及 while 中可以有else 
 else 子句需要在循环体正常执行完成以后才会执行,如果遇到break 或者return 就不会执行。
33.容器型数据结构
【序列】【集合】【字典】
下面先说序列:
是一种可迭代、元素有序的容器类型的数据。
序列包括:list、str、元组(tuple)、字节序列(bytes)
[序列的索引]
H E L L O
0 1 2 3 4 // 正序列
-5-4-3-2-1// 反序列
[序列的加乘操作]
加(+)可以将两个序列连接起来
乘(*)可以将两个序列重复多次
![图片说明](https://uploadfiles.nowcoder.com/images/20201012/9917802_1602518291550_79C63A658B3415E45CA5FD1875FFF32B "图片标题") 
[序列的切片语法]
格式:[start:end:step]左闭右开区间
步长为负值,则从右往左;步长为正值,则从左往右
步长默认为1

[list]
通过list(‘迭代元素’)方法可以创建列表
追加单个:append(x)
追加多个:extend(t) // t为列表对象
在python 中方法和函数是有区别的
    方法:隶属于类,可以被类或者对象调用 例如:list.append(x)方法
    函数:不属于任何类,可以直接调用,例如:list()函数
插入:
list.insert(x,i)方法// x是索引;i是待插入元素
替换:
    = 替换//直接对下标赋值
删除:
    list.remove(x)//针对值删除。一次只删除一个,如果匹配到多值,则只删除第一个


[tuple]元组是一种不可变序的类型
创建元组:
  tuple(里面是可迭代的对象) 函数
  (元素1, 元素2, 元素3, 元素4 ... )
   注意:创建只有一个元素的元组:tuple=t,元组后面的逗号不可以省略
   通过()创建空元组
    创建元组相当于把数据打包进元组里面,这个过程成为元组的打包
元组拆包:
    与元组打包相反,就是将元组中的元素取出,分别赋值给不同的变量
    直接使用 =
    x,y=(23,'er')
在python中,所有的容器类型都可以存储不同类型的数据

[set]集合是一种可迭代的、无序的、**不能包含重复元素的容器类型**
创建集合:
    两个方式:
    1.set(迭代对象)函数,
    2.{元素1,元素2,元素3,...}:指定具体的集合元素,元素间以逗号分隔
修改集合:
    1.修改集合类似于修改列表,可以在其中插入和删除元素。
    2.add(元素)//方法 添加元素,如果元素存在则不能够添加,不会抛出错误    
    3.remove(元素) //删除元素,如果元素不存在,则抛出错误。
    4.clear() //清除集合
   
[dict]字典是一种使用键值对存储数据的数据库结构:key不可以重复;value可以重复;键值对使用:隔开键值对之间使用,隔开
创建字典:
    1.dict(字典)//函数 , 参数是一个字典
    2.{key1:value1,..,keyn:valuen} // 枚举法
修改字典是对key 和value 同时操作的,对字典的修改都是添加,替换,删除
    通过索引赋值的形式直接对指定dict[key]进行赋值,替换、增加(如果有就替换)
    通过dict.pop(key)方法删除指定key与之键值对
访问字典的试图:
    items() //方法 ;返回所有键值对的视图
    keys()//方法 ;返回所有key的视图
    vlaues()//方法 ;返回所有value的视图
遍历字典:
    可以单独遍历keys视图
    也可以单独遍历values视图
    也可以同时遍历
for x in dict.keys():
for x in dict.values():
for x , y in dict.items():

总结:
序列元素是有序的,其中列表是可变的,但是元组不可变
集合元素是无序的,且不能够重复。
字典通过键来访问元素,由key:value构成,keys()不可以包含重复元素

34.字符串
[表示]
    普通字符串:单引号 双引号表示 ;
        如果字符串中包含单引号就用双引号括起来这样就不用转义了,反之:如果想要包含双引号就是用单引号括起来就不用转义了。
        字符串中的字符采用Unicode的编码表示
    长字符串:在实际开发中,r'xxx' 在字符串前面加上一个r就可以了,里面的内容就不会被转义
    原始字符串:使用三个单引号或者是三个双引号括起来,里面可以排版可以换行,贼方便。~

【python 连接mysql数据库  --- pymysql】
#!/usr/bin/python3
 
import pymysql
 
# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )

 
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
 
# 使用 execute()  方法执行 SQL 查询 
cursor.execute("SELECT VERSION()")
 
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
 
print ("Database version : %s " % data)
 
# 关闭数据库连接
db.close()

[其中connect的参数列表为]
host=None,          # 要连接的主机地址
user=None,          # 用于登录的数据库用户
password='',        # 密码
database=None,      # 要连接的数据库
port=0,             # 端口,一般为 3306
unix_socket=None,   # 选择是否要用unix_socket而不是TCP/IP
charset='',         # 字符编码
sql_mode=None,      # Default SQL_MODE to use.
read_default_file=None, # 从默认配置文件(my.ini或my.cnf)中读取参数
conv=None,          # 转换字典
use_unicode=None,   # 是否使用 unicode 编码
client_flag=0,      # Custom flags to send to MySQL. Find potential values in constants.CLIENT.
cursorclass=,       # 选择 Cursor 类型
init_command=None,  # 连接建立时运行的初始语句 
connect_timeout=10, # 连接超时时间,(default: 10, min: 1, max: 31536000)
ssl=None,           # A dict of arguments similar to mysql_ssl_set()'s parameters.For now the capath and cipher arguments are not supported. 
read_default_group=None, # Group to read from in the configuration file.
compress=None,      # 不支持
named_pipe=None,    # 不支持
no_delay=None,      # 
autocommit=False,   # 是否自动提交事务
db=None,            # 同 database,为了兼容 MySQLdb
passwd=None,        # 同 password,为了兼容 MySQLdb
local_infile=False, # 是否允许载入本地文件
max_allowed_packet=16777216, # 限制 `LOCAL DATA INFILE` 大小
defer_connect=False, # Don't explicitly connect on contruction - wait for connect call.
auth_plugin_map={}, #
read_timeout=None,  # 
write_timeout=None, 
bind_address=None   # 当客户有多个网络接口,指定一个连接到主机

--------------------------------------------------------------------------------------------2020年12月23日
【python 的内置数据类型】
    python 是一种强类型语言,也是一种动态类型的语言;只能包含 下划线 数字 大小写。不可以用数字开头,但是下划线可以。(嘻嘻真的很变态)
    布尔与数字运算的时候True 与 False 分别代表 1 与 0
    两个**代表幂运算
    数字自增自乘的时候运算效率会高一点
    python 的函数和方法的区别,方法是在类里面的说法,而内置函数等等python原生自带的就叫做函数
【python 字符串】
    三引号创建字符串一般用于多行的时候噢!
    字符串中包含某种引号的时候,需要用另外一种引号去包含它!
    字符串前面加r 里面的转义字符就不会转义噢~
    字符串与其他类型的转换;int() float() bool('如果里面是空串则返回false;如果里面是非空串则饭会true')
    自增运算符可以应用到字符串相加
    字符串可以乘以一个数字,然后就可以复制N倍(数字倍)
    字符串0开头,如果反过来,则用-1取
    字符串反转strs[::-1]
    字符串常用函数len()\split(分割 分割成一个list)\strip(去除,以特定形式去除)\upper(大写)\lower(小写)\capitallize(首字母大写)\replace('被替换的','被替换成')\count(计数)\startwith(以啥开头;返回布尔)\endwith('以什么结尾;返回布尔')\find('查找从什么位置开始有这个字符串的')\str.join('列表')可以将列表合并到一起噢~
【python 列表】
    列表元素可变
    []、list('里面一般放字符串,然后可以转换成list 噢~')
    切片语法和字符串差不多噢,几乎一样
    列表同时赋值[:2]//同时为前两位赋值
    list.extend(list1)//列表合并
    list.append(x)//追加元素
    list.pop(x)//删除指定位置的元素
    list.del(x)//删除指定值的元素
    list.insert('位置','值')
    list.sort()//快速排序
    使用in 关键字来判断字符串是否在list中,如果是返回True 反之 False
    list.count('查询元素出现的次数')
    list.index('查询元素出现的位置')

【python错题1】
题目:
求以下程序输出:
# -*- coding:utf-8 -*-
def test(a, b, *args):
    print(a)
    print(b)
    print(args)
 
test(11, 22, 33, 44, 55, 66, 77, 88, 99)

解释:
def test(a,b,*args)
a,b位置参数;*args为不定长位置参数,传入的参数被放入一个元祖里。
所以,a,b分别被赋值11、22,而其他的数被存到一个元组里。


【python错题2】
info = {'name':'班长', 'id':100, 'sex':'f', 'address':'北京'}
age = info.get('age')
print(age)
age=info.get('age',18)
print(age)

求上述输出

解析:本题考查的是字典的 get 方法
dict.get(key, value=None)
当value的值存在时返回其本身,当key的值不存在时返回None(即默认参数)。


【python错题3】


解析:
1、虚数不能单独存在,它们总是和一个值为 0.0 的实数部分一起构成一个复数
2、复数由实数部分和虚数部分构成
3、表示虚数的语法:real+imagej。故A正确。
4、实数部分和虚数部分都是浮点数 B正确。
5、虚数部分必须有后缀j或J 后缀大小写均可,C错误。

其中B容易误解,指的是输出结果是浮点数。例子如下:

aa=123-12j
print(aa.real)  # output 实数部分 123.0
print(aa.imag)  # output 虚数部分 -12.0
结果:
123.0
-12.0

【python错题4】
list切片如果越界了,不会提示,但是如果是单纯的索引就会提示索引错误
索引提示indexerror,切片不提示


【python错题5】
题目:
foo = [1,2]
foo1 = foo
foo.append(3)

答案:
foo 与 fool 都是[1,2,3]
解析:
可变对象为引用传递,不可变对象为值传递。
第二行foo1 = foo,是将fool的地址赋予给fool,即foo与foo1指向内存中同一地址。
第三行当执行foo.append时,因为python中列表的值是可以变化的。所以就在原来的存放foo的内存地址改变了foo的值,由最初的[1, 2]变为[1, 2, 3]。由于foo1和foo 是指向同一地址空间的索引,所以当foo内存地址所存储的值被改变时,打印foo1时,foo1的值也变化了。


【python错题6】
python中主要存在四种命名方式:
1、object #公用方法
2、_object #半保护
                 #被看作是“protect”,意思是只有类对象和子类对象自己能访问到这些变量,
                  在模块或类外不可以使用,**不能用’from module import *’导入。**
                #__object 是为了避免与子类的方法名称冲突, 对于该标识符描述的方法,父
                  类的方法不能轻易地被子类的方法覆盖,他们的名字实际上是
                  _classname__methodname。
3、_ _ object  #全私有,全保护
                       #私有成员“private”,意思是只有类对象自己能访问,连子类对象也不能访
                          问到这个数据,不能用’from module import *’导入。
4、_ _ object_ _     #内建方法,用户不要这样定义
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值