变量与数据类型

2021-10-09 23:16:37
admin
2935
最后编辑:admin 于 2024-02-14 14:01:14

注释

python 中,注释使用井号 # 标识。注释是给人看的,可以是任意内容,解释器会忽略掉注释。

代码块缩进

python 中每一行都是一个语句,python 区别于其他语言,代码块并不是使用花括号{},而是用缩进的形式展示。注意,同一块语句的每一行的缩进相同。当语句以冒号 : 结尾时,说明后跟一个代码块。

常见的缩进形式是缩进2位或4位空格(推荐缩进4位)。建议大家在编码的编辑器里将一个 tab 设置为4个空格即可。

变量

变量由字母、数字、下划线构成,且数字不能打头!不能有空格。不能使用python关键字。

变量的赋值与调用都没有$等符号,直接使用名称。

声明变量的同时要赋值,即变量在第一次赋值时生成;

Python 中,所有的数据都被称之为对象(即:赋给变量的值都是对象)。对象有类型,存储在内存区域;变量本身没有类型,变量名指向实际对象。

数据类型

 1. 数型

python 支持整数与浮点数类型。

数据运算支持基本的加、减、乘、除、取余:+ - * / %

除法运算 (/) 永远返回浮点数类型。如果要得到一个整数结果(忽略小数部分)你可以使用 // 运算符;如果要计算余数,可以使用 %

** 用来求一个数的幂运算,比如3的2次方即3**2

注:幂运算符比取反(负数)的优先级要高,所以-3 ** 2等同于-(3**2),而不是(-3) **  2。(幂运算符比乘、除的优先级也要高)

*是乘法运算符,但当用*链接一个字符串和一个整数时,表示字符串复制运算符。如:

‘abc’ * 3

结果:abcabcabc

 2. bool型

True     False   #首字母大写!  

python中并不是大于0 的就是True,小于0的就是False!Python 和 C 一样,任何非零整数都为真,零为假。

但是用bool()类型转换时,除了0 、0.0、空对象、空映射、None等特殊情况会转换为False之外,其他情况都转为True。

条件组合:

and   or   not     #与、或、非 

 3. 字符串

字符串由单/双引号括起来。

如果字符串中有多行内容或同时包含单、双引号,则可以使用单/双三引号('''a'''或"""a""")括起来。

反斜杠 \ 可以用来转义特殊字符。

如果你不希望前置了 \ 的字符转义成特殊字符,可以使用 原始字符串 方式,在引号前添加 r 即可。

len() 函数 可以得到一个数据对象的长度,通常用来获取 字符串、列表、元组、字典等类型对象的元素个数。

在字符串中使用变量:

python中单/双引号都可以解析变量;

引号开始前跟一个f;

引号中的变量必须用花括号{}括起来。如:print(f"hello {name}")

有时为了对齐,可以指定变量的长度 {name:10},如果实际变量值的长度小于指定长度,则在变量值前面补加空格。

引号嵌套:

当字符串中需要用到单引号,则用双引号包围该字符串;

当字符串中需要用到双引号,则用单引号包围该字符串;

字符串连接符 +

+只能连接两个数值做加法运算,或连接两个字符串做连接符。不能用来连接一个数值和一个字符串,这不符合python语法。

字符索引:

字符串是可以被索引(下标访问)的,注意:第一个字符索引是 0。对于长字符串,也可以使用负数下标,最后一个字符为-1。

name = "Gavin Hsueh"
# name[0] 的值为 'G'
# name[-2] 的值为'e'

字符串切片:

切片,顾名思义是指将一个字符串切成多个片段(字串)。

name = "Gavin Hsueh"
# name[0:5] 的值为 'Gavin' ,切片的起始位置是从0(包含)到5(不包含)
# name[6:11] 的值为'Hsueh',切片的起始位置是从6(包含)到11(不包含)

所以,字符串切片前面的索引是切片开始的字符的索引,后面的索引是切片结束的字符的索引 + 1。

您也可以这么理解切片:将索引视作指向字符之间 ,第一个字符的左侧标为0,最后一个字符的右侧标为 n ,其中 n 是字符串长度。例如:

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
 0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1

切片的索引有默认值;省略开始索引时默认为0,省略结束索引时默认为到字符串的结束。

字符串对象相关方法:

赋给变量的值叫对象,对象有操作方法,用于处理对象数据。每种数据对象类型都有一套它自己专属的方法(函数),调用方法为 对象变量.方法。


strip/lstrip/rstrip 方法

清除字符串中的空白符:

清除左侧:lstrip()

清除右侧:rstrip()

清除两侧:strip()

find方法

find 方法会在字符串中查找参数字符串,并返回该参数字符串在其中第一次出现的位置索引。

如果字符串对象里面没有要查找的参数字符串,就会返回 -1

例如,利用find方法判断字符串中是否包含目标字串:

#!/usr/bin/python3
str = "my name is GavinHsueh"
if str.find('GavinHsueh') >= 0:
    print('hello GavinHsueh')
else:
    print('who are you?')

split方法

split方法可以实现字符串转列表,方法以参数字符串为分割符 ,将字符串切割为多个字符串,作为元素存入一个列表,并返回该列表。

#!/usr/bin/python3
str = "zhangsan|lisi|wangwu|zhaoliu"
list = str.split('|')
print(list[2])
# 输入结果为 wangwu。

注:还有一个类似的 splitlines 方法,顾名思义该方法按行(换行符)分隔,常用于文件操作,将文件内容存入字符串,然后每行作为一个元素,存入一个列表。

join方法

join 方法和 split方法作用正好相反。split 是将一个字符串通过指定分隔符转化为列表,而 join 是将列表中的元素通过指定连接符连接成一个字符串。

#!/usr/bin/python3
list = ['zhangsan','lisi','wangwu','zhaoliu']
str = '|'.join(list)
print(str)
# 输入结果为 zhangsan|lisi|wangwu|zhaoliu

replace 方法

进行字符串中的替换操作。该方法有两个参数,即在字符串中,将第一个参数子串全部替换成第二个参数子串。

#!/usr/bin/python3
str = "hello,let us begin with hello world."
str2 = str.replace('hello','hi')
print(str2)
# 输出结果为 
hi,let us begin with hi world.

常量

在程序的整个生命周期内保持不变。常量名全用大写。