Python再接触

编码之间的转换

unicode 编码成 utf-8 utf-8 解码成 unicode

unicode 编码成 gdk gdk 解码成 unicode

.decode() //编码

.encode() //解码

例子:

a = "dyq"
a_unicod = a.encode(‘utf-8‘)   # a = "dyq" 解码成 unicod
a_gdk = a_unicod.decode(‘gdk‘)  # a_gdk 编码成 gdk
print()

字符编码之间的转换关键要记住一个图,这个其实没太大作用,P3都是默认utf-8,除非遇到不同编码类型的才需要重新解码,编码

Python3版本可以直接转码成gdk,不需要解码到unicod再编码成gdk了,省略了一步。

a_utf8 = a_unicod.decode(‘gdk‘) 

运算符

算数运算

比较运算

赋值运算

逻辑运算

成员运算


基本数据类型

从上图可得的分类:

单值

  • 数字(int)

    整数

    浮点数

    在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

    在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

  • 字符串(str)
  • 布尔值(bool)

    真(True)

    假(False)

集合

  • 列表(list)
  • 元组(tuple)
  • 字典(dict)

不同的类里面有针对各自对象的功能(又称方法),需要的时候从类里调用方法。

查看数据类型

a = "what"
print(type(a))   #type可以用来查看数据类型

查看类型的方法

print(dir(123)) #dir函数可以显示数据a里面所有的方法名称(只是显示名称)
print(help(123))    #help函数可以查看数据类型的方法详情

数字类型常用方法

  • 整数之间的加法 + 其实就是运行功能里的 _add_

这个只做简单了解,就是运算的时候其实是调用的类里面的add方法

n1 = 123
n2 = 456
print(n1+n2)  =  print(n1.__add__n2)
  • .length:获取该数字占用的最小位数是多少
n1 = 123
b = n1.bit_length()
print(b)
>>> 7   #最少7位

当然还有很多可以方法供我们使用,了解详情请点这里


字符串类型常用方法

对字符串的增

  • +=:增加内容
name = "xiaoming"
b = "123"
name += b[0:2]    #这里选择把变量b范围内的内容添加到name里面
name += "b"     #然后再在name的最后一列加上字符“b”
print(name)

数字123用引号括住以后,在赋值给变量,这时它的类型就不再是数字了,而是字符串类型。


对于字符串类型没有专门的删除方法


对字符串修改

  • .upper(self):字符串里的内容全部变大写
name = "xiaoming"
print(name)
name2 = name.upper()    #upper后面的括号不添加参数
print(name2)

输出内容:
xiaoming
XIAOMING
  • .lower:全部变小写
print(name.lower()) 
  • .capitalize(self):首字母变大写
name = "xiaoming"
print(name.capitalize())

输出结果:
Xiaoming
  • .center(self, width, fillchar=None),其他部分用指定字符填充
a = "eric"
b = a.center(10,"*")    #括号里的内容表示的意思是,把eric居中到10位里面,空白处用*填充
print(b)

输出结果:
***eric***
  • .expandtabs(self, tabsize=None):拓展,把制表符变成指定个数空格
content = "hello\t123"
print(content.expandtabs())     #默认变成8个空格
print(content.expandtabs(10))   #也可以指定变成多少个空格,但指定个数要包含前面的内容的个数。
输出结果:
hello   123
hello     123   
  • .join(self, iterable):用什么什么连接元素
a = ("xiao","ming")
s = "--".join(a)    #这里的用法不太一样,前面跟参数,后面跟对象,这里表示用"--"把两个元素连接起来,用来连接的内容可以指定
print(s)

输出结果:
xiao--ming
  • .swapcase:小写变大写,大写变小写
a = "xiao"
b = "MING"
print(a.swapcase())
print(b.swapcase())

输出结果:
XIAO
ming
  • .partition:分隔,以指定字符为分隔点把值分隔开
name = "xiaoming"
b = name.partition("o")     #括号内可以指定用其中的那个字符作为分割点
print(b)

输出结果:
(‘xia‘, ‘o‘, ‘ming‘)    #分隔以后数据类型就变成了元组类型。
  • replace(self, old, new, count=None:替换,把自定内容替换成另一个指定内容
name = "xiaoming"
b = name.replace("o", "a")      #括号内的参数,第一个是旧内容,第二个是新内容
print(b)
  • .strip() .lstrip() .rstrip():移除空格,三个方法:可以移除所有空格;可以移除左;右空格。

    有时候元素中会有空格,我们需要对数据里的空格进行修改,但只集中操作无法删除对象中间的空格

name = " xiao ming "
print(name.strip())
print(name.rstrip())
print(name.lstrip())

输出结果:
xiao ming
 xiao ming
xiao ming 
  • .decode(self, encoding=None, errors=None):对字符编码
  • .encode(self, encoding=None, errors=None):对字符转码
a = "xiaoming"
a_unicod = a.encode(‘utf-8‘)   # a = "dyq" 解码成 unicod
a_gdk = a_unicod.decode(‘gdk‘)  # a_gdk 编码成 gdk
print()

对字符串的查

  • .count(self, sub, start=None, end=None):统计子序列的个数
name = " xiao ming "
b = name.count("i",0, 5)    #括号里的参数,第一个表示要统计的对象,第二和第三个表示统计的范围,从0开始算起。
print(b)

输出结果:
1   #在元素的第一位到第五位,i字符一共出现了1次所以统计为1
  • .endswith(self, suffix, start=None, end=None):是否以某字符结尾
  • startswith(self, prefix, start=None, end=None):是否以某个字符开头
name = "xiao ming"
print(name.endswith("a", 0, 3))     #第一个参数表示指定结尾字符,第二三个参数指定位置
print(name.startswith("o"))

输出结果:
True    #如果是以这个字符结尾的则返回真,如果不是返回假
False
  • .find(self, sub, start=None, end=None):查找字符位置,如果没有则返回-1
name = "xiaoming"
print(name.find("a", 0, 6))

输出结果:
2
  • index(self, sub, start=None, end=None):与上面的find作用相同,但没有找到后则会报错

这里就不举例说明了

  • isalnum(self):是否是数字和字符,如果元素中包含字符和数字的话就返回真
name = "123xiaomin/g3"
print(name.isalnum())

输出结果:
False   #因为字符里面有特殊字符所以不为真
  • .isalpha(self):是否为字母,如果为则为真
  • .isdigit(self):是否为数字,如果为则为真
  • .islower(self):是否为小写,如果为则为真

当然还有很多可以方法供我们使用,了解详情请点这里

时间: 2024-10-10 01:58:08

Python再接触的相关文章

python再学习笔记

python各种半桶水QAQ,一些特性经常跟其他语言搞混,官方入门文档重读温习...... 最好用4个空格的缩进空值是Python里一个特殊的值,用None表示变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来 编码问题:print u'中'.encode('utf-8') 另一种有序列表叫元组:tuple.tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:classmates = ('Michael', 'Bob', 'Tra

Python 初接触

在一次浏览技术分享中,了解了一些Python介绍.本着对新语言的一种热情,在网上找了一些相关基础教程及应用,感觉挺有意思.为了更好,更系统的了解这门语言.就在这里开一个小的系列.介绍一个Python白丁的成长.借此督促自己将该技术了解透彻,以免半途而废. 闲话少叙进入正题: 凡是接触一门新的语言,第一个要攻克的课题就是开发环境的部署及IDE的选取.这里我也是密码了很久.纠结的一段时间.选择了Sublime3 作为开发工具. 环境下载: 很简单,问问度娘python下载就可以搞定.我这里下载的py

Hibernate 再接触 核心开发接口

1.可以重载方法进行配置文件的指定 sessionFactory = new AnnotationConfiguration().configure("hibernate.xml").buildSessionFactory(); 这样读取到的就是hibernate.xml 但一般不建议修改 getcurrentsession 指的是上下文如果没有提交 就不会创建新的session opensession 永远打开新的session 用于鉴定事务边界 比如加入日志操作等 事务:要么同时完

Hibernate 再接触 CRUD

1.save 一对多双向 package com.bjsxt.hibernate; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persis

Hibernate 再接触 悲观锁和乐观锁

为什么取1248 二进制 CRUD 移位效率高 在并发和效率选择一个平衡点 一般不会考虑幻读 因为我们不会再一个事务里查询两次,(只能设置为seralizable) 悲观锁和乐观锁的前提是read-uncommitted 在数据库中 默认是repeatable read 悲观锁是想着总有人要更改 所以使用数据库的锁 乐观锁是在程序级别的 设置一个版本号 如果前后不一致就进行自己的操作 例子 悲观所 Acocount package com.bjsxt.hibernate; import java

06.Python再谈编码

?. is和==的区别 1. id() 通过id()我们可以查看到?个变量表?的值在内存中的地址. ?数据池(常量池): 把我们使?过的值存储在?数据池中.供其他的变量使?. ?数据池给数字和字符串使?, 其他数据类型不存在. 对于数字: -5~256是会被加到?数据池中的. 每次使?都是同?个对象. 对于字符串: 1. 如果是纯?字信息和下划线. 那么这个对象会被添加到?数据池 2. 如果是带有特殊字符的. 那么不会被添加到?数据池. 每次都是新的 3. 如果是单?字?*n的情况. 'a'*2

ajax再接触

贴三个目前写的已经工作了的ajax,并且给出备注: 1.这是第一个ajax以及它的接口文档,需要注意的是1.因为返回数据是xml所以多加了contentType:"application/xml"和dataType:"xml"两句:2.xml请求参数比较奇怪(data:后面跟的),详见接口文档里的请求样例:3.当我给这段代码的末尾加分号(:)的时候,console不出来获取的数据了,非常奇怪,但它是一个值得注意的问题. $.ajax({ type:"pos

Hibernate 再接触 基础配置 续

<property name="show_sql">true</property> 这句话是意思显示sql语句 <property name="format_sql">true</property> 格式化输出sql语句 当类与表名不一致时  在属性前面加注解 @Table(name="_teacher") Xml 则是指定table属性 不加 注释的话 相当于加@Basic 属性名和字段名不一致

Hibernate 再接触 一对多单向关联

在1的方向加多的集合 Group.java package com.bjsxt.hibernate; import java.util.HashSet; import java.util.Set; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import java