python数值类型+字符串

1月27-1月29日学习笔记

碎碎念:在家学习状态不佳,导师布置的任务多还效率低,在家隔离14天后,终于下定决定定了自习室的月卡,这下总应该可以好好学习,天天向上了!为了尽快写出推荐算法的论文,编程语言学习进度不能拉下!要重新做人了,坚持不懈!


目录

一、数据类型,数值运算

1.链式数值:

2.系列接包赋值:

3.常量:

4.内置数据类型:

5.运算符:

6.整数:

7.浮点型:

8.增强型赋值运算符:

9.时间的表示:

综合回顾小练习:利用海龟制图定义坐标,划出折线图并计算初始点和终点的距离

10.布尔值:

11.比较运算符:

12.逻辑运算符:

13.同一运算符:

​14.整数缓存的问题:

二、字符串

1.字符串基本特点:

2.字符串的编码:

3.引号创建字符串:

4.空字符串:

5.转义字符:

6.字符串的拼接:

7.字符串的复制:

8.不换行打印:

9.从控制台读取字符串:

10.str()实现数字转型字符串:

11.使用[ ]提取字符:

12.replace()实现字符串替换:

13.字符串切片slice操作:

 练习小作业:

14.split()分割和join()

15.字符串驻留机制和字符串比较:

16.字符串常用方法汇总:

17.去除首尾信息:

18.大小写转换:

19.格式排版:

20.字符串的格式化:

(1)format()基本用法

(2)填充和对齐:

(3)数字的格式化:


 

一、数据类型,数值运算

1.链式数值:

x=y=123,把同一个变量赋值给多个变量

2.系列接包赋值

a,b,c = 1,2,3;把a赋值为1,b赋值为2,c赋值为3,注意:个数要一致;使用系列解包的变量变换 

a, b = 1, 2
a, b = b, a
print(a, b)

2 1

3.常量

python不支持常量,即没有语法规则限制改变一个常量的值,对于一个变量来说,赋值是可以更改的。常量的名称都大写,用下划线隔开。

Max_SPEED = 120
print(Max_SPEED)

120

 

4.内置数据类型

整型:整数;浮点:小数;布尔型:表示真假,包括Ture 和 False;字符串型:abc,尚学堂等。

5.运算符

加——+;减—— -;乘——*;浮点数除法——/;整数除法——//(取整数);模(取余数)——%;幂——**;注:0 不能做除数divmod()函数可以同时得到商和余数。

a = 7/2
b = 7//2
c = 7%2
d = 2**10
print(a,b,c,d)
#3.5 3 1 1024
print(divmod(13, 3))
#(4, 1)得到的答案是个元组

6.整数

(1)10进制、2进制0b、8进制0o、16进制0x;

#0b是二进制
print(0b101)

5                
#0o是八进制
print(0o10) 

8                
#0x表示16进制,16进制里面f是10,16进制有1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
print(0xf)    

10                

(2)用int()实现类型转换,不能转换字符串;

print(int(3.9999))

3

(3)自动转型:整数和浮点型混合运算时,表达结果自动转型成浮点数;

(4)在python里面,int可以存储任意大小的整数,google这个词本身就代表10的100次方。

7.浮点型:

(1)浮点型用a\times 10^{b}科学计数法表示,比如:3.14,可以表示为314E-2或者314e-2;

(2)这些数字在内存中也是按照科学计数法存储;float(3)可以把整数型转换为浮点型;

(3)float(“3.14”}可以把字符串转化为小数;整数和浮点数混合运算时,表达式结果自动转型为浮点数;

(4)round()可以返回四舍五入的值。注:不改变原有的值,产生的是新的值。

8.增强型赋值运算符

a = a + 1 等价于 a += 1;注:+和=之间不需要加空格

9.时间的表示:

在计算机中时间的表示是从“1970年1月1日 00:00:00”开始,以毫秒进行计算的。1970年这个 时刻称为“unix时间点”;python可以通过time.time()获得当前时刻,返回值以秒为单位。

 

import time
a = time.time()
print(a)
#1611734769.4795678


#取整
b = int(a)
print(b)
#1611734864

#获得分钟数
totalMinutes = a/60
print(totalMinutes)
#26862284.781424604

#分钟数取整
totalMinutes = a//60
print(totalMinutes)
26862284.0

#取小时数
totalHours = totalMinutes//60
print(totalHours)
#447704.0

#计算天数
totalDays = totalHours//24
print(totalDays)
#18654.0

#计算年
totalYear = totalDays//365
print(totalYear)
#51.0

综合回顾小练习:利用海龟制图定义坐标,划出折线图并计算初始点和终点的距离

import turtle
import math
#定义多个点的坐标
x1, y1 = 100, 100
x2, y2 = 100, -100
x3, y3 = -100, -100
x4, y4 = -100, 100

#绘制折线
turtle.penup()
turtle.goto(x1, y1)
turtle.pendown()

turtle.goto(x2, y2)
turtle.goto(x3, y3)
turtle.goto(x4, y4)

#计算起始点和终点的距离
distance = math.sqrt((x1 - x4) ** 2 +(y1 - y4)**2)
#计算平方根利用到了math模块里的sqrt包

turtle.write(distance)

10.布尔值:

True =1;False = 0

11.比较运算符:

(1)等于 ==;(2)不等于!=;(3)大于 >;(4)小于 <;(5)大于等于 >=;(6)小于等于 <=

12.逻辑运算符:

(1)or: x or y,x为ture,则不计算y,发生短路

(2)and: x and y,x为真,则返回y的值;若x为false,不计算y,直接返回x的值

(3)not: not x,取非

13.同一运算符:

同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址

is 与==的区别:is判断的是两个变量引用对象是否为同一个,即比较对象的地址;==用于判断引用对象的阿值是否相等


14.整数缓存的问题:

python会将[-5,256]范围内的整数缓存起来,则在这个范围内数,a = 5 ,b = 5. a is b 为真,默认这两个数的地址相同。而在pycharm里面的范围是[-5,任意正整数]

 

 

二、字符串

1.字符串基本特点

(1)程序员打交道最多的是“字符串”,而不是数字,编程中的逻辑思维重要性远远超过数学能力;

(2)字符串的本质是:字符序列;python的字符串是不可变的,我们无法对原字符串做任何修改;

2.字符串的编码:

python3直接支持Unicode编码,Unicode16位可以表示世界上任何书面语言的字符

3.引号创建字符串

通过单引号或双引号创建;字符串里本身有单引号的,外面用双引号,字符串本身有双引号的,外面用单引号;连续三个单引号或三个双引号,可以帮助我们创建多行字符串

4.空字符串:

python里面允许空字符串的存在

5.转义字符:

转义字符的使用:

(1)\n换行

a = 'I\nlove\nu'
print(a)

'''
I
love
u
'''

 (2)\'  在使用单引号的字符串中,使“ ’ ”表示单引号本身的意思

#\'表示单引号的意思
b = 'I\'m a teacher'
print(b)
#I'm a teacher

(3)\续行符

#\表示续行符
print('aaaaa\
ccccccc')
#aaaaaccccccc

 

6.字符串的拼接

·使用加号——'aa' + 'bb';

(1)+两边都是字符串,则是字符串的拼接;

(2)+两边都是数字,则是加法运算;

(3)+两边的类型不同,则会出现异常

·可以讲多个字符串直接放在一起拼接

print("aa" + "bb")
aabb

print("aa" "bb")
aabb

7.字符串的复制

直接用*实现复制

print('sxt' * 3)

sxtsxtsxt

8.不换行打印

在调用print时,会自动打印一个换行符,如果我们不想换行,则可以通过添加end = “任意字符串”

#不换行
print('aa', end="")
print('bb', end="")
print('cc')
#aabbcc

#制表符
print('aa', end="\t")
print('bb', end="\t")
print('cc')
#aa	bb	cc

9.从控制台读取字符串

可以通过input() 从控制台读取键盘输入的内容

myname = input("请输入名字:") #传参
print(myname)

请输入名字:高宇星
高宇星

10.str()实现数字转型字符串

在pycharm里面实现不了这个过程

11.使用[ ]提取字符

字符串的本质就是字符序列

(1)正向搜索:最左侧第一个字符,偏移量是0,第二个偏移量是1,以此类推,知道len(str)-1为止;

(2)反向搜索:最右侧第一个字符,偏移量是-1.第二个偏移量是-2,以此类推,直到-len(str)为止;

a = "abcdefghijklmn"
print(a[0])

a

12.replace()实现字符串替换

a = "abcdefghijklmn"

注:字符串是不可改变的,我们无法通过直接令a[0] = "gao"来改变字符串中第一个位置的内容,但是可以通过replace的方式来改变。在整个过程中,我们创建了新的字符串对象,而不是改变了以前的字符串

b = a.replace("c", "gao")  #把“c”这个字母替换为“gao”
print(b)   #abgaodefghijklmn

13.字符串切片slice操作:

a = "abcdefghijklmn"
print(a[1:5])
 #截取了字符串偏移量1到4的部分 包头不包尾
bcde

print(a[1:5:2])
#第三个是数字是步长,不写的时候。一般默认为1
bd

print(a[:]) 
#提取整个字符串
abcdefghijklmn

print(a[2:])
#提取从第二个字符串到所有
cdefghijklmn

print(a[:2])
#从头开始提取到第二个数,不包尾
ab

print(a[-3:]) 
#从倒数第三个开始取到最后
lmn

print(a[-8:-3])
#从倒数第八个开始到倒数第4个,包头不包尾,
ghijk

print(a[::-1])
#步长为负,从右到左反向提取
nmlkjihgfedcba

 练习小作业:

#作业1:将“to be or not to be"字符串倒序输出
#作业2:将”sxtsxtsxtsxtsxt"字符串中所有的s输出

a = "to be or not to be"
print(a[::-1])


b = "sxtsxtsxtsxtsxt"
print(b[0], b[3], b[6], b[9], b[12])

在切片操作中,当初试偏移量和终止偏移量不在[0, len(str)-1]的范围内,也不会报错,会自动默认为取len(str)-1范围内的数

14.split()分割和join()

split()可以基于指定分隔符字符串分割成多个字字符串

c = a.split()
print(c) #['to', 'be', 'or', 'not', 'to', 'be']

d = a.split("be")
print(d) #['to ', ' or not to ', '']

e = a.split("to")
print(e) #['', ' be or not ', ' be']

join()将列表中的字符串连接在一起;字符串可以通过+进行拼接,但是每+一次,就会形成一个新的对象,但是列表对象是可变的,生成一个列表直接用join()则只产生一个对象

#join一般在列表中使用,将列表中的字符串连接在一起
a = ["sxt", "sxt100", "sxt200"]
b = "".join(a)
c = "*".join(a)
print(b)     #sxtsxt100sxt200
print(c)     #sxt*sxt100*sxt200 通过*号将字符串连接起来

通过测试来证明,通过列表join时间更快,性能更高

通过终止时间和初始时间的时间差可以看出,join()的计算速度远超过字符串之间用+连接的速度

mport time
time01 = time.time() #起始时间
a = ""
for i in range(1000000):
    a += "sxt"


time02 = time.time()  #终止时间
print(time01, time02)

print("运算时间:"+str(time02 - time01))  #0.42705464363098145

time03 = time.time()#开始时间
list = []
for i in range(1000000):
    list.append("sxt")

a = "".join(list)
time04 = time.time() #终止时间
print("运算时间:"+str(time04 - time03)) #0.11100530624389648

15.字符串驻留机制和字符串比较:

(1)字符串驻留:对于符合标识符规则的字符串(仅包括下划线( _ )、字母和数字时,会启用字符串驻留机制;但是在pycharm里面,只要字符串长得一样,就都符合驻留机制

(2)字符串比较和同一性:==是对字符串进行比较,字符串包括的字符是否相同;但is 或 not is 判断的时两个对象是否是同一个对象

(3)成员操作符:in、not in是关键词,判断某个字符是否在字符串中

a = "abd_3"
b = "abd_3"
if a is b:
    print(1)

#测试结果为1,说明a = b,

c = "dd#"
d = "dd#"
print(id(c), id(d))
if a is b:
    print(1)
else:
    print(0)

a = "abcdefg"
if "a" in a:
    print(1)

if "h" in a:
    print(1)
else:
    print(0)

if "h" not in a:
    print(1)

16.字符串常用方法汇总:

17.去除首尾信息:

strip()去除字符串首尾指定的信息,通过lstrip()去除字符串左边指定的信息,通过rstrip()去除字符串右边指定的信息

a = " sxt ".strip()
print(a)

b = "*s*x*t*"
print(b.strip("*"))   #去除字符串两端的*    
s*x*t

print(b.rstrip("*"))  #去除字符串右侧的*    
*s*x*t

print(b.lstrip("*"))  #去除字符串左右的*   
 s*x*t*

18.大小写转换:

a = "litterstar love programming and xidian"
b = a.capitalize()       #产生新的字符串,首字母的大写
print(b)   
Litterstar love programming and xidian

c = a.title()  #产生新的字符串,每个单词的首字母都大写
print(c)       
Litterstar Love Programming And Xidian

d = a.upper()  #产生新的字符串,所有字符串全部转成大写
print(d)      
LITTERSTAR LOVE PROGRAMMING AND XIDIAN

e = d.lower()   #产生新的字符串,所有的字符都转成小写
print(e)       
litterstar love programming and xidian

f = c.swapcase()  #产生新的字符串,所有的大小写字符互相转换
print(f)         
lITTERSTAR lOVE pROGRAMMING aND xIDIANv

19.格式排版:

center()居中;ljust()左对齐;rjust()右对齐

a = "sxt"
b = a.center(10, "*")      #一共10个字符,a字符串居中,左右两边填充”*“
c = a.center(10)           #一共10个字符串长度,a居中,其他地方用空格填充
d = a.ljust(10, "*")       #一共10个字符串长度,a左对齐,其他地方用”*“填充
e = a.rjust(10, "*")
print(a, b, c, d, e)

sxt ***sxt****    sxt     sxt******* *******sxt

20.字符串的格式化:

(1)format()基本用法

a = "名字是:{0}, 年龄是:{1}" #这里的0和1相当于是占位符
b = a.format("小星星", 18)
print(b)   
名字是:小星星, 年龄是:18

c = "名字是:{0}, 年龄是:{1}, {0}是个好小伙"
d = c.format("小星星", 18)
print(d)   
名字是:小星星, 年龄是:18, 小星星是个好小伙

a = "名字是:{name}, 年龄是:{age}"   #传参的话不需要考虑顺序问题
b = a.format(age=18, name="littel_star")
print(b)        
名字是:littel_star, 年龄是:18

(2)填充和对齐:

 填充和对齐一起使用:^表示居中,>表示右对齐,<表示左对齐,符号后面加字符串的长度,前面是填充的内容

#填充和对齐
a = "我是{0}, 我喜欢的数字是{1:*^8}"  
b = a.format("高宇星", "666")
print(b)       
我是高宇星, 我喜欢的数字是**666***

a = "我是{0}, 我的存款有{1:.2f}"
b = a.format("高宇星",  31435678.245678)
print(b)      
我是高宇星, 我的存款有31435678.25

(3)数字的格式化:

浮点数用f,整数用d

常用的格式如下:

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值