【python】基本数据类型(1)

在这里插入图片描述

参考:

Note:


最近一次修订时间为 2020-12-21



  Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种广泛使用的高级编程语言,属于通用型编程语言,由Guido van Rossum 创造,第一版发布于 1991 年。作为一种解释型语言,Python 的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。相比 C++ 或 Java,Python 让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了

  与 Scheme、Ruby、Perl、Tcl 等动态类型编程语言一样,Python 拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。其本身拥有一个巨大而广泛的标准库。

  Python 虚拟机本身几乎可以在所有的操作系统中运行。Python 的官方解释器 CPython,用 C语言 编写,是一个由社区驱动的自由软件,目前由 Python软件基金会管理。(节选自维基百科)

  工欲善其事必先利其器,磨刀不误砍柴工,python是一个不错的冲浪板,让你驰骋AI的浪潮。Let’s get start it.

这里写图片描述

1 基本数据类型

1.1 数字

1.1.1 整数(int)

type(233) #查看变量类型

  int

isinstance(233,int) # 查看变量是否是猜测类型 isinstance(变量,猜测类型)

  True

isinstance(233.0,int)

  False

6**666 # 6的666次方

  177309806357755465270499427328598301776288968306075410151885112575756027539778209314850999852445333091203575172280395689214341071142311799945944795749206487224435664711586155446695783530381869261940579191212338095792283942630165267180235014754878622816388898950208360661204545460054710039966583620720703499070583619219756147969379415147383218476051784215338153642534248184239668587526354555162441056191517103281698310461707618482703994245002903843491150719636915674602477294467393397773059407237966516507939097024659456

type (6**666)

  int

  可见python中int的范围很广,但float范围就没有这么大了

6.0**666 #浮点数 溢出错误

  就会报错,OverflowError: (34, ‘Numerical result out of range’)

这里写图片描述

  我用的是Anaconda 里面的 jupyter notebook编译的。下载地址:清华大学开源软件镜像站(去官网下载比较慢),更换主题请参考:Jupyter更换主题和扩展包

1.1.2 浮点数(float)

type(233.0)

  float

isinstance(233,float)

  False

isinstance(233.0,float)

  True

这里写图片描述1

1.1.3 布尔值(bool)

  有 True 和False 两种

a = True
type (a)

  bool

b = False
type (b)

  bool

这里写图片描述
压缩,把布尔值去掉!eg,去掉 False,None,0,“”

alist = ["0",0,"False",False,"None",None,1,2,3,""]
print(list(filter(bool,alist)))

output

['0', 'False', 'None', 1, 2, 3]

1.1.4 复数(complex)

1+1j #复数

  (1+1j)

type(1+1j)

  complex

1+j

  报错,NameError: name ‘j’ is not defined

(1314+520j).real #复数的实部

  1314.0

(1314+520j).imag #复数的虚部

  520.0

这里写图片描述

1.1.5 进制

  二进制0b(数字0,字母b)0B也可以;
  八进制0o(数字0,字母o)0O也可以;
  十六进制0x(数字0,字母x)0X也可以;
  十进制,输入默认为十进制

这里写图片描述

0b100.0 # 二进制只能出现1 0

报错,SyntaxError: invalid syntax

进制之间转换的BIF(内置函数)如下:

这里写图片描述

这里写图片描述

那么其它进制如何转为10进制呢?

这里写图片描述

1.2 字符串

1.2.1 基本介绍

  字符串是一串字符,用‘字符串’或者“字符串”表示。

type (‘I love Kobe Bryant!’)

  str

‘I love Kobe Bryant!’ # 使用单引号的字符串

  ‘I love Kobe Bryant!’

“I love Kobe Bryant!”#使用双引号的字符串

  ‘I love Kobe Bryant!’

  但是如果一边用单引号‘一边用双引号‘’,就会报错。eg:

'I love Kobe Bryant!"

  报错: SyntaxError: EOL while scanning string literal

这里写图片描述

  字符串中,有引用一句话的时候,要注意,单双引号的嵌套使用。如果按照第一行的代码,系统会根据引号匹配,而无法识别Hi,Kobe!这段内容。

这里写图片描述

1.2.2 注释

  单行注释, 用 # 表示。

这里写图片描述

  多行注释,用三个单引号或三个双引号。

这里写图片描述

这里写图片描述

1.2.3 转义字符

这里写图片描述

   \t,横向制表符,空出四个空格

这里写图片描述
Note:python 中一个:也相当于一个table

  \n,换行

print(‘I\nlike Kobe!’) # \n,换行

  I
  like Kobe!

  \b 退格,即往前删除一格

print(‘I\blike Kobe!’) # \b 退格,即往前删除一格

  like Kobe!

print(‘We\blike Kobe!’)

  Wlike Kobe!

  ’ 表示单引号,这样就可以用同种引号,解决上次引用问题了

这里写图片描述

  可以采用两种方法让转义字符失效:

  1.字符串前面加r

这里写图片描述

  2.再加一个反斜线

这里写图片描述

1.2.4 字符串方法

1)字符串长度(len)

这里写图片描述

  从上述例子可以看出,python中空格为1个字符,汉字为一个字符,转义字符\t,\b,\r占一个字符。

'' #空字符
' ' #一个字符
2)字符串连接(+) / f-string

  用+号就可以了。

这里写图片描述

使用 f-string 来连接字符串

print("hello"+" "+"world")

hello = "hello"
world = "world"
print(f'{hello} {world}')

output

hello world
hello world

代替频繁的使用 +

3)字符串索引
string = 'Kobe Bryant'  #注意是从0开始编号
len(string)

  11

print(string[0],string[5])

  K B

#负数表示倒数第几个
print(string[-1],string[-4])

  t y

string[11]  #超出范围

  报错 IndexError: string index out of range

4)字符串切片

   注意切片选项的最后一个位置取不到,左闭右开区间[a, b)

string = 'Kobe Bryant'
len (string)

   11

string[1:4]#第1个位置切到第3个位置

   ‘obe’

string[1:8:2]#第1个位置切到第8个位置,步长为2

   ‘oeBy’

string[1:]#第1个位置切到最后

   ‘obe Bryant’

string[::]#切出所有

   ‘Kobe Bryant’

string[::2]#步长为2,切所有

   ‘Kb rat’

string[::-1]#逆序字符串

   ‘tnayrB eboK’

string[:4]#切到第4个,0,1,2,3

   ‘Kobe’

string[11:]#起始位置越界,返回了空字符串

  ‘’

string[:11]#结束位置越界,返回整个字符串

   ‘Kobe Bryant’

5)字符串常用BIF

  BIF 就是 Built-in-Functions,内置函数。为了方便程序员快速编写脚本程序(脚本就是要编程速度快快快!!!),Pyhton提供了非常丰富的内置函数,我们只需要直接调用即可,例如print()的功能就是“打印到屏幕”,input()的作用是接收用户输入。

dir(__builtin__) #输出中,小写的都是BIF,查看内置函数

输出有152个

help(BIF) #可查看使用说明

这里写图片描述

更多的字符串内置函数请看
Python 字符串

split

str.split(str=“”, num=string.count(str)).

str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num – 分割次数。

strip

str.strip([chars]);

来自:https://www.runoob.com/python3/python3-string-strip.html

Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符——转义字符)或字符序列。

注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

count
s = "Hello, World! Hello, Bryant!"
print(s.count(" "))
print(s.count("l"))

output

3
5
find

eg:find():可以在字符串中查找子串是否存在:如果找到,返回的是子串的起始索引位置,当找不到子串时,返回 -1,也可以指定找的起始索引

s = 'bryant is my brother'
print(s.find('bryant'))
print(s.find('brother'))
print(s.find('is'))
print(s.find('is',7))
print(s.find('is',8))

output

0
13
7
7
-1

ljust / rjust

用指定字符补齐到指定长度

在这里插入图片描述

s = "Kobe Bryant"
print(s.ljust(30, "0"))
print(s.rjust(30, "0"))

output

Kobe Bryant0000000000000000000
0000000000000000000Kobe Bryant

replace()

eg:replace()

在这里插入图片描述
https://www.runoob.com/python/att-string-replace.html

address_new = address.replace(".","[.]")

上面这行代码可以把字符串中的 . 替换成 [.]


startswith()

在这里插入图片描述
判断是否以 XXX 为结尾的方法为 endswith

join()

在这里插入图片描述

例如字符串列表组成单个字符串,也即用逗号将 list 中的元素隔开

list1 = ["What's", "your", "name?", "How", "are", "you!"]
print(" ".join(list1))

output

What's your name? How are you!
lower 和 casefold

都能将字符串中的大写字母转换成小写

s = "Kobe Bryant"
print(s.lower())
print(s.casefold())

区别在于,lower 支持 ASCII 的大小写转换,也即 A-Z,casefold 功能更加强大,支持更多语言的大小写转化

参考 python中string.casefold和string.lower区别

upper / capitalize / title

都有让字母大写的功能,区别是:

  • upper:所有字母大写
  • title:所有词首字母大写
  • capitalize:首个词首个字母大写
s = "hEllo, wOrld! hEllo, bRyant!"
print(s.upper())
print(s.title())
print(s.capitalize())

output

HELLO, WORLD! HELLO, BRYANT!
Hello, World! Hello, Bryant!
Hello, world! hello, bryant!

1.2.5 字符串 not support item assignment

string = 'bryant'
string[0] = 'e'

output

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-4294ee8688a9> in <module>()
      1 string = 'bryant'
----> 2 string[0] = 'e'

TypeError: 'str' object does not support item assignment

用切片加组合的方式修改

string2 = 'e'+string[1:]
string2

output

'eryant'

1.2.6 字符串字节占用

string = "Hello World!!!"
print(len(string.encode('utf-8')))

output

14

2 附录

8个建议,为啥不使用Python开发大型项目!

变量声明不存在,这是一个问题(它是什么,它在做什么,以及哪里需要它)

模块,你属于哪里?(这是一个迷宫,也是一个由 Pythonians 创造且真实存在的依赖地狱)

大量依赖冲突(比如说你使用模块 A 和 B,而两者都依赖于模块 C。但是 A 需要3.2或者更高版本的 C, B 需要2.9或者更早的版本 C)

不同的机器,不同的 Python(在每台新机器上,你都需要检查并重新安装各个版本及要求)

pip 之外的世界(整合大型项目,你可能会集成 C 包、 Fortran 包等,在这过程中你必须使用像 ‘gcc’、‘gfortran’ 这样的编译器,甚至其它更多编译器)
。。。


Note: 更多连载请查看【python】

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值