学习Python编程基础学习笔记(1.概述)(下)

目录

五:python数据类型

5.1数字类型(int&float):

5.2字符串类型 (str)

5.3空值类型 (NoneType)

5.4布尔值类型(bool)

六:Python 数据类型转换

七:Python 输入/输出 (I/O)

7.1输入数据

7.2输出

八:Python 中的运算

8.1逻辑值检测

8.2比较操作

8.3数字类型运算

8.4整数类型的按位运算

8.5成员检测运算

小结:


五:python数据类型

5.1数字类型(int&float):

整数(int):

        Python 支持任意大小的整数四则运算,并且支持乘方计算。

        示例:

print(1 + 1)
# 加法运算,输出 2

print(1 - 1)
# 减法运算,输出 0

print(1 * 2)
# 乘法运算,输出 2

print(2 / 1)
# 除法运算,输出 2.0

print(3 % 2)
# 求余数运算,输出 1

# 如果不能整除,Python 会输出小数,使用 // 符号,可以向下取整
12 // 3.2 # 舍去0.75 , 输出 3.0

# 使用 `**` 符号计算乘方
3 ** 4
# 3 ** 4 = 3 * 3 * 3 * 3 输出 81

        使用千分位表示数字

        为了便于阅读Python还支持使用 _ 下划线分割数字

        100_000_2 与 1000002 等效

        科学计数法

        Python 支持使用 E (大小写均可) 符号表示科学计数法

        示例:

print(1e+4 == 10000)
# 输出 True

 浮点类型 (float):

        和整数相同,Python 全面支持浮点数运算

        混合类型运算数的运算会把整数转换为浮点数,只要运算中有任何一个元素是小数,运算结果都会包含小数点

        示例:

print(4 * 3.0)
# 输出 12.0

5.2字符串类型 (str)

字符串是Python的基本类型之一

  • 字符串有多种表现形式,包含在单引号中间:'string',或者包含在双引号之间:"string"
  • 反斜杠 \ 用于转义

        示例:

# 用双引号标记的字符串
print("字符串")

# 用单引号标记的字符串
print('字符串')

 Python中的转义符 \

  一些特殊的符号需要转义才能正常输出

# 在一个双引号标记的字符串中,如果包含双引号,需要用 \ 符转义
print("字\"符串")

# 在字符串中包含 tab 键、换行、响铃符号需要转义
print("打印\n换行符")
print("打印\ttab符号")
print("打印\a响铃符,电脑会发出 '哔' 的响声")

         转义符号表 (Escape sequences)

\a警报符\v垂直 tab
\b后空格'单引号
\f表单馈送"双引号
\n新起一行/反斜线
\r回车符?问号
\t水平 tab

 字符串操作:

        字符串连接:

# 使用空格分割的多个字符串Python解释器会自动连接
print("a" "b" "c")
# 输出 abc,使用控制连接字符串只能作用于字符串的字面值,不能用于变量或表达式

# 我们也可以用 + 号连接
print("a" + "b" + "c")
print("{} {}" "a" "b")

        重复字符串:

print("=" * 3)
# 会输出三个 =

       字符串还支持索引操作:

str = "ABCD"
# 注:所有编程语言的索引都以0开始
print(str[0]) # 输出 A
print(str[1]) # 输出 B
print(str[3]) # 输出 D

5.3空值类型 (NoneType)

        空值类型的唯一值是 None

        示例:

# 我们定一个一个函数
def func():
    """这个函数的文档信息"""
#    """这个函数的文档信息"""
    print("这是一个函数")

print(func.__doc__)
# 打印函数文档信息, 输出 "这个函数的文档信息",删掉文档信息后,
# 在使用 __doc__ 打印将会输出 None,请在代码中尝试

5.4布尔值类型(bool)

        布尔值类型有两个值,True 真 和 False 假,当设定满足条件是 得到 True 值,否则将得到 False 值

        示例:

print(1 == 1) # 输出 True
print("abc" == "abc") # 输出 True
print(1 == 2) # 输出 False

        True、False、None 都术语Python内置常量,即不可修改的值

        Python 还有一些内置常量,我就不一一说了,哈哈哈哈哈哈哈。

六:Python 数据类型转换

先看几个问题:

  1. 字符串 “10” 如何转换为整数 10
  2. 整数 10 如何转换为 浮点数 10.0
  3. 布尔类的 True 值转为整数类型会是多少
  4. 整数 -1 转换为布尔值会是 True 吗

为什么要进行类型转换?

        使用Python编程时,经常会遇到 非预期类型的数据,此时如果直接使用可能会得到非预期的计算结果

        示例:

# 首先定一个一个函数
def getPower(n: int):
    print(n ** n)

getPower(3) # 输出 27
getPower("3") # 将函数的参数改为字符串 "3",就会报错,字符串不能直接进行乘方计算

        由于Python中不能强制限制变量的类型(可以自主判断来限制),所以需要转换数据类型来的到预期的类型数据

        我们重新修改 getPower 函数:

# 首先定一个一个函数
def getPower(n: int):
    n = int(n) # 使用 int() 函数将输入的参数强制转换为整数
    print(n ** n)

getPower("3") # 此时 参数 3 和 "3" 得到的结果相同,输出 27

        如果系统无法正确推到出类型解释器则会报错

print(int("a")) # 显然字符串 a 无法推到出具体的 整数值,运行代码将会得到一个错误

# ValueError: invalid literal for int() with base 10: 'a'

 显式的类型转换

        顾名思义,开发者主动进行的类型转换称之为 “显式类型转换”

        包括上面使用的 int() 函数,Python进行类型转换的内置函数的其他示例:

print(int("10")) # 将 字符串 "10" 转换为整数 10
print(str(10)) # 将 整数 10 转换为 字符串 "10"
print(float(10)) # 将 整数 10 转换为 浮点数 10.0
print(str(True)) # 将 布尔值转换为字符串 得到字符串 "True"
print(int(True)) # 将 布尔值转换为字符串 得到字符串 "True"
print(bool(1)) # 将 整数 1 转换为 True

隐式的类型转换

         在整数和浮点数混合运算中,Python解释器会自动转换类型,将整数向浮点数转换以保持数值精度(有浮点数参与了就OK)

        示例:

print(10 + 1.0) # 输出 11.0

七:Python 输入/输出 (I/O)

7.1输入数据

        以交互方式输入

        使用 input() 函数从终端接受用户输入:

# -*- coding: utf-8 -*-

input_word = input("键入任何字符,然后回车:\n")

if len(input_word) != 0:
    # 输入任何字符然后输出字符和类型信息
    # 你会使用input输入的任何数据都会是字符串
    print(input_word + " is " + type(input_word).__name__ + " type")
else:
    print("input is empty")

        从文件中读取数据作为输入

# 示例文件:code/introduction/python-io.py
io = open("io.txt", "r")
print(io.readlines())

7.2输出

 简单输出

        最简单的输出就是使用 print() 函数打印,print 可以传入多个数据(参数)一起打印

        示例:

print("字符串")
# 输出 字符串

print("字符串", ["a", "b", "c"], True)
# 输出: 字符串 ['a', 'b', 'c'] True

复杂的格式化输出

        使用 f"" 符号格式化字符串

year = 2016
event = 'Referendum'
print(f"Results of the {year} {event}")
# 在字符串之前加上 f 表示需要解析字符串中的变量,变量使用 {变量名} 占位
# 输出: Results of the 2016 Referendum

# 在 f"" 中还可以进行数学运算 和 调用函数
print( f"3 * 3 = {3 * 3}" )
# 输出 9

print( f"3 ** 3 = {pow(3, 3)}" )
# 输出 27

        在 f 字符串中 '"""" 单引号、双引号和三引号是等效的

        示例:

name = "Hello"
print( f'{name}' )
print( f"{name}" )
print( f"""{name}""" )

        还可以使用字符串的 format() 方法格式化字符串(讲真的一个小白我感觉这个方法好迷,用途在哪里呢?希望我以后不要遇见它)

        示例:

# 按顺序格式化字符串
print(str("{} {} {} {}").format(1,2,3,4))
# 输出 1 2 3 4

# 按位置格式化字符串
print(str("{3} {2} {1} {0}").format(1,2,3,4))
# 输出 4 3 2 1

# 按位置格式化字符串
string: str = "{3} {2} {1} {0}"
print(string.format(1,2,3,4))
# 输出 4 3 2 1

数字格式化

        下表显示了使用 Python 的 str.格式格式()格式数字的各种方法,包括浮动格式和整数格式的示例。

        要运行示例,请使用:print(“FORMAT”.format(NUMBER));

        要获得第一个示例的输出,将浮子格式化为两个小数位,您将运行:

print("{:.2f}".format(3.1415926));
格式输出描述
3.1415926{:.2f}3.14格式浮动 2 小数位
3.1415926{:+.2f}+3.14格式浮动 2 小数点的地方与标志
-1{:+.2f}-1.00格式浮动 2 小数点的地方与标志
2.71828{:.0f}3格式浮动,无小数位
5{:0>2d}05垫号为零(左衬垫,宽度 2)
5{:x<4d}5xxx带x的垫号(右衬垫,宽度4)
10{:x<4d}10xx带x的垫号(右衬垫,宽度4)
1000000{:,}1,000,000带逗号分离器的数字格式
0.25{:.2%}25.00%格式百分比
1000000000{:.2e}1.00e+09指数符号
13{:10d}13右对齐(默认值,宽度 10)
13{:<10d}13左对齐(宽度10)
13{:^10d}13中心对齐(宽度10)

 转换数字进制

print("{0:d}:十进制 - {0:x}:十六进制 - {0:o}:八进制 - {0:b}:二进制 ".format(12))

# 输出 12:十进制 - c:十六进制 - 14:八进制 - 1100:二进制

八:Python 中的运算

        Python的内置类型有数字、序列、映射、类、实例和异常。

        有一部分类型可以进行添加、移除或重排等运算,所有对象都可以比较是否相等、检测逻辑值,以及转换为字符串。

8.1逻辑值检测

and or not

这些属于布尔运算,按优先级升序排列:

运算结果注释
x or yif x is false, then y, else x(1)
x and yif x is false, then x, else y(2)
not xif x is false, then True, else False(3)

注释:

  1. 这是个短路运算符,因此只有在第一个参数为假值时才会对第二个参数求值。
  2. 这是个短路运算符,因此只有在第一个参数为真值时才会对第二个参数求值。
  3. not 的优先级比非布尔运算符低,因此 not a == b 会被解读为 not (a == b) 而 a == not b 会引发语法错误。

8.2比较操作

        在 Python 中有八种比较运算符。 它们的优先级相同(比布尔运算的优先级高)。 比较运算可以任意串连;示例,x < y <= z 等价于 x < y and y <= z,前者的不同之处在于 y 只被求值一次(但在两种情况下当 x < y 结果为假值时 z 都不会被求值)。

        此表格汇总了比较运算:

运算含义
<严格小于
<=小于或等于
>严格大于
>=大于或等于
==等于
!=不等于
is对象标识
is not否定的对象标识

        除不同的数字类型外,不同类型的对象不能进行相等比较。== 运算符总有定义,但对于某些对象类型(示例,类对象),它等于 is 。其他 <<=> 和 >= 运算符仅在有意义的地方定义。示例,当参与比较的参数之一为复数时,它们会抛出 TypeError 异常。

8.3数字类型运算

int float complex

        Python存在三种不同的数字类型: 整数浮点数 和复数。 此外,布尔值属于整数的子类型。 整数具有无限的精度。 浮点数通常使用 C 中的 double 来实现;有关你的程序运行所在机器上浮点数的精度和内部表示法可在 sys.float_info 中查看。 复数包含实部和虚部,分别以一个浮点数表示。 要从一个复数 z 中提取这两个部分,可使用 z.real 和 z.imag。(标准库包含附加的数字类型,如表示有理数的 fractions.Fraction 以及以用户定制精度表示浮点数的 decimal.Decimal 。)

        数字是由数字字面值或内置函数与运算符的结果来创建的。 不带修饰的整数字面值(包括十六进制、八进制和二进制数)会生成整数。 包含小数点或幂运算符的数字字面值会生成浮点数。 在数字字面值末尾加上 'j' 或 'J' 会生成虚数(实部为零的复数),你可以将其与整数或浮点数相加来得到具有实部和虚部的复数。

        Python 完全支持混合运算:当一个二元算术运算符的操作数有不同数值类型时,"较窄"类型的操作数会拓宽到另一个操作数的类型,其中整数比浮点数窄,浮点数比复数窄。不同类型的数字之间的比较,同比较这些数字的精确值一样。[2]

        构造函数 int() 、 float() 和 complex() 可以用来构造特定类型的数字。

        所有数字类型(复数除外)都支持下列运算(有关运算优先级,请参阅: 运算符优先级 ):

运算结果注释完整文档
x + yx 和 y 的和
x - yx 和 y 的差
x * yx 和 y 的乘积
x / yx 和 y 的商
x // yx 和 y 的商数(1)
x % yx / y 的余数(2)
-xx 取反
+xx 不变
abs(x)x 的绝对值或大小abs()
int(x)将 x 转换为整数(3)(6)int()
float(x)将 x 转换为浮点数(4)(6)float()
complex(re, im)一个带有实部 re 和虚部 im 的复数。im 默认为0。(6)complex()
c.conjugate()
复数 c 的共轭
divmod(x, y)(x // y, x % y)(2)divmod()
pow(x, y)x 的 y 次幂(5)pow()
x ** y
x 的 y 次幂
(5)

 注释:

  1. 也称为整数除法。 结果值是一个整数,但结果的类型不一定是 int。 运算结果总是向负无穷的方向舍入: 1//2 为 0(-1)//2 为 -11//(-2) 为 -1 而 (-1)//(-2) 为 0

  2. 不可用于复数。 而应在适当条件下使用 abs() 转换为浮点数。

  3. 从浮点数转换为整数会被舍入或是像在 C 语言中一样被截断;请参阅 math.floor() 和 math.ceil() 函数查看转换的完整定义。

  4. float 也接受字符串 “nan” 和附带可选前缀 “+” 或 “-” 的 “inf” 分别表示非数字 (NaN) 以及正或负无穷。

  5. Python 将 pow(0, 0) 和 0 ** 0 定义为 1,这是编程语言的普遍做法。

  6. 接受的数字字面值包括数码 0 到 9 或任何等效的 Unicode 字符(具有 Nd 特征属性的代码点)。

    请参阅 https://www.unicode.org/Public/13.0.0/ucd/extracted/DerivedNumericType.txt 查看具有 Nd 特征属性的代码点的完整列表。

所有 numbers.Real 类型 (int 和 float) 包括下列运算:

运算结果
math.trunc(x)x 截断为 Integral
round(x[, n\])x 舍入到 n 位小数,半数值会舍入到偶数。 如果省略 n,则默认为 0。
math.floor(x)<= x 的最大 Integral
math.ceil(x)>= x 的最小 Integral

有关更多的数字运算请参阅 math 和 cmath 模块。

8.4整数类型的按位运算

        按位运算只对整数有意义。 计算按位运算的结果,就相当于使用无穷多个二进制符号位对二的补码执行操作。

        二进制按位运算的优先级全都低于数字运算,但又高于比较运算;一元运算 ~ 具有与其他一元算术运算 (+ and -) 相同的优先级。

        此表格是以优先级升序排序的按位运算列表:

运算结果注释
`xy`x 和 y 按位 
x ^ yx 和 y 按位 异或(4)
x & yx 和 y 按位 (4)
x << nx 左移 n 位(1)(2)
x >> nx 右移 n 位(1)(3)
~xx 逐位取反

注释:

  1. 负的移位数是非法的,会导致引发 ValueError 。
  2. 左移 n 位等价于乘以 pow(2, n) 。
  3. 右移 n 位等价于除以 pow(2, n) ,作向下取整除法。
  4. 使用带有至少一个额外符号扩展位的有限个二进制补码表示(有效位宽度为 1 + max(x.bit_length(), y.bit_length()) 或以上)执行这些计算就足以获得相当于有无数个符号位时的同样结果。

整数和浮点数运算还包括一些附加方法,以及整数的哈希运算,请参考 Python 标准库

8.5成员检测运算

        有两个成员检测符号:

  • in 如果对象在序列中返回 True
  • not in 如果对象不在序列中返回 True

        成员检测主要作用于 列表 (list)、元祖 (tuple)、映射 (dict)。

        关于列表 (list)、元祖 (tuple)、映射 (dict)将在 数据类型 一章介绍

        示例:

# 列表成员检测
print(2 in [1,2,3]) # 输出 True
print(2 not in [1,3]) # 输出 True

# 元祖成员检测
print((2) in (1,2,3)) # 输出 True
print((2) not in (1,3)) # 输出 True

# 映射成员检测
print("one" in {"one": 1, "two": 2}) # 输出 True
print("three" not in {"one": 1, "two": 2}) # 输出 True

小结:

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

请叫我7plus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值