【蟒蛇】1、变量和数据类型-学Python黑马程序员个人笔记

参考视频

黑马程序员python教程,8天python从入门到精通

字面量

字面量,在代码中被写下来的固定的值,python中常用有6种值(数据)的类型:

1、数字(Number)
整数(int),如:10、-10
浮点数(float),如:13.14、-13.14
复数(complex) ,如: 4+3j,以j结尾表示复数
布尔(bool)表达现实生活中的逻辑,即真和假,True表示真,False表示假。True本质上是一个数字记作1, False记作0

2、字符串(String)描述文本的一种数据类型,又称文本
字符串(string)由任意数量的字符如中文、英文、数字和各类符号组成,所以叫字符的串

3、列表(List)有序的可变序列
Python中使用最频繁的数据类型,可有序记录一堆数据

4、元组(Tuple)有序的不可变序列
可有序记录一堆不可变的Python数据集合

5、集合(Set)无序不重复集合
可无序记录一堆不重复的Python数据集合

6、字典(Dictionary)无序Key—Value集合

注释

# 单行注释和多行注释

"""
本代码演示了
-各类字面量的写法
-通过print语句输出各类字面量
"""

# 写一个整数字面量
666
# 写一个浮点数字面量
13.14
# 写一个字符串字面量
'黑马程序员'

# 通过print语句输出各类字面量
print(666)
print(13.14)
print('黑马程序员')

变量

# 变量:在程序运行时,能储存计算结果或能表示值的抽象概念。简单的说,变量就是在程序运行时,记录数据用的。
# 定义一个变量,用来记录钱包余额
money = 50
# 通过print语句,输出变量记录的内容

print("钱包还有:", money)
# 买了一个冰淇淋,花费10元
money = money - 10
print('买了冰淇淋花费10元,还剩余:', money, '元', sep='')

money = 50
print("当前钱包余额:", money, '元')
money = 10
print('购买了冰淇淋,花费:', money, '元')
money = 5
print('购买了可乐,花费:', money, '元')
money = 50
money = money - 15
print('最终,钱包剩余:', money, '元')


# GPT代码
# 初始钱包余额
wallet_balance = 50
print("当前钱包余额:", money, '元')
# 购买冰淇淋,花费10元
wallet_balance -= 10
print("购买了冰淇淋,花费:10元")

# 购买可乐,花费10元
wallet_balance -= 5
print("购买了可乐,花费:5元")

# 输出最终钱包余额
print("最终,钱包剩余:{}元".format(wallet_balance))

"""
以下来源菜鸟教程
"""
# 您也可以为多个对象指定多个变量。例如:
a, b, c = 1, 2, 'noob'
print(a)  # 1
print(b)  # 2
print(c)  # noob

数据类型

# 数据类型有三种:整数int、浮点数float、字符串string

# 方式1:使用print直接输出类型信息
print(type('黑马程序员'))
print(type(666))
print(type(11.345))


# 方式2:使用变量存储type()语句的结果
string_type = type('黑马程序员')
int_type = type(666)
float_type = type(11.345)
print(string_type)
print(int_type)
print(float_type)


# 方式3:使用type()语句,查看变量中存储的数据类型信息
name = '黑马程序员'
name_type = type(name)
print(name_type)

# 变量无类型,但存储的数据有类型。通过type()可以输出类型,查看的是变量存储的数据的类型。

"""
以下来源菜鸟教程
"""
# 数据类型还有复数类型complex (复数), 如 1 + 2j、 1.1 + 2.2j

数据类型转换

# 常见的转换语句:
# 1、int(x),将x转换为一个整数;
# 2、float(x),将x转换为一个浮点数;
# 3、str(x),将对象x转换为一个字符串。
# 这三个语句都是带有结果的(返回值),可以用print直接输出或者用变量存储结果值

# 将数字类型转换成字符串,通过变量来接收转换结果
num_str = str(11)
print(type(num_str), num_str)

float_str = str(11.345)
print(type(float_str), float_str)


# 将字符串转换成数字
num = int("11")
print(type(num), num)

num2 = float('11.345')
print(type(num2), num2)

# # 万物可转字符串'',但是字符串内的内容必须为数字,’黑马程序员‘不行
# # 错误示例,想要将字符串转换成数字,必须要求字符串内的内容都是数字
# num3 = int('黑马程序员')
# print(type(num3), num3)

# 整数转浮点数
float_num = float(11)
print(type(float_num), float_num)

# 浮点数转整数
int_num = int(11.345)
print(type(num), int_num)


"""
以下来源菜鸟教程
"""
# Python 数据类型转换可以分为两种:
# 1、隐式类型转换 - 自动完成, 我们对两种不同类型的数据进行运算,
# 较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失。
num_int = 123
num_flo = 1.23

num_new = num_int + num_flo

print("num_int 数据类型为:", type(num_int))
print("num_flo 数据类型为:", type(num_flo))

print("num_new 值为:", num_new)
print("num_new 数据类型为:", type(num_new))
"""
num_int 数据类型为: <class 'int'>
num_flo 数据类型为: <class 'float'>
num_new: 值为: 124.23
num_new 数据类型为: <class 'float'>
"""

# 2、显式类型转换 - 需要使用类型函数来转换
# 用户将对象的数据类型转换为所需的数据类型。 我们使用 int()、float()、str() 等预定义函数来执行显式类型转换。
num_int = 123
num_str = "456"

print("num_int 数据类型为:", type(num_int))
print("类型转换前,num_str 数据类型为:", type(num_str))

num_str = int(num_str)    # 强制转换为整型
print("类型转换后,num_str 数据类型为:", type(num_str))

num_sum = num_int + num_str

print("num_int 与 num_str 相加结果为:", num_sum)
print("sum 数据类型为:", type(num_sum))
"""
num_int 数据类型为: <class 'int'>
类型转换前,num_str 数据类型为: <class 'str'>
类型转换后,num_str 数据类型为: <class 'int'>
num_int 与 num_str 相加结果为: 579
sum 数据类型为: <class 'int'>
"""

换行符_分隔符_制表符

# 字符串不换行
print('hello')
print('world')
print('hello', end='')
print('world', end='')
# 输出为
# hello
# world
# helloworld

# 不换行符和分隔符
print('G', 'F', sep='', end='')
print('G')
print('09', '12', sep='-', end='-2016\n')
print('prtk', 'agarwal', sep='', end='@')
print('geeksforgeeks')

# 输出为
# GFG
# 09-12-2016
# prtkagarwal@geeksforgeeks


"""
以下来源菜鸟教程
"""
# 多行语句:Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语句,例如:
item_one = 'haha'
item_two = 'is'
item_three = 'er'
total = item_one + \
        item_two + \
        item_three
print(total)  # hahaiser
# 在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \,例如:
total = ['item_one', 'item_two',
         'item_three',
         'item_four', 'item_five']
"""
['item_one', 'item_two', 'item_three', 'item_four', 'item_five']
"""

标识符

# 规则1:内容限定,限定只能使用:中文、英文、数字、下划线,注意:不能以数字开头
# 错误的代码示范:1_name="张三"
# 错误的代码示范:name_!="张三"
name_ = "张三"
_name = "张三"
name_1 = "张三"


# 规则2:大小写敏感
Itheima = '上黑马程序员'
itheima = 666
print(Itheima)
print(itheima)

# 规则3:不可使用关键字
# 错误的示例,使用了关键字:class = 1
# 错误的示例,使用了关键字: def = 1
Class = 1

附录(python关键字):

  • False:布尔值假。
  • None:表示空值。
  • True:布尔值真。
  • and:逻辑与运算符。
  • as:用于给模块或异常起别名。
  • assert:用于调试时的断言操作。
  • async:用于定义异步函数或操作。
  • await:用于异步操作,等待异步调用完成。
  • break:用于终止循环。
  • class:用于定义类。
  • continue:跳过当前循环的剩余部分,继续下一次循环。
  • def:用于定义函数或方法。
  • del:用于删除对象。
  • elif:用于条件语句的其他条件。
  • else:用于条件语句或循环的其他情况。
  • except:用于捕获异常。
  • finally:用于在异常处理完毕后执行代码块。
  • for:用于循环。
  • from:用于导入模块的一部分。
  • global:声明全局变量。
  • if:用于条件判断。
  • import:用于导入模块。
  • in:用于检查是否在某个集合内,或用于循环。
  • is:用于判断两个对象是否是同一个对象。
  • lambda:用于创建匿名函数。
  • nonlocal:声明使用外层函数的局部变量。
  • not:逻辑非运算符。
  • or:逻辑或运算符。
  • pass:占位语句,不执行任何操作。
  • raise:用于引发异常。
  • return:用于从函数返回值。
  • try:用于异常处理,尝试执行代码块。
  • while:用于循环,条件为真时执行。
  • with:用于简化异常处理的上下文管理。
  • yield:用于生成器函数,暂停函数并返回值。

运算符

# 演示Python中的各类运算符

# 算术(数学)运算符
print('1 + 1 =', 1 + 1)
print('2 - 1 =', 2 - 1)
print('3 * 3 =', 3 * 3)
print('4 / 2 =', 4 / 2)
print('11 // 2 =', 11 // 2)
print('9 % 2 =', 9 % 2)
print('2 ** 2 =', 2 ** 2)

# 标准赋值运算符,把=右边的结果赋给左边的变量,如num = 1 + 2 * 3,结果num的值为7
# num = 1 + 2 * 3

# 复合赋值运算符

# +=
num = 1
# num = num + 1,运算从上到下连续,1+1=2后,num=2,2-1=1
num += 1
print('num += 1:', num)
num -= 1
print('num 1= 1:', num)
num *= 4
print('num *= 4:', num)
num /= 2
print('num /= 2:', num)

# 取模,返回除法的余数
num = 3
num %= 2
print('num %= 2:', num)  # num %= 2: 1

# 平方
num **= 2
print('num **= 2:', num)

# 取整数,往小的方向取整数
num = 9
num //= 2
print('num //= 2:', num)  # num //= 2: 4

字符串的三种定义

"""
演示字符的三种定义方式
-单引号定义法
-双引号定义法
-三引号定义法
"""

# 单引号定义法,使用单引号进行包围
name = '黑马程序员'
print(type(name))
# 双引号定义法
name = "黑马程序员"
print(type(name))
# 三引号定义法,写法和多行注释是一样的
name = """
我是
黑马
程序员
"""
print(type(name))

# 在字符串内,包含双引号
name = '"黑马程序员"'
print(name)
# 在字符串内,包含单引号
name = "'黑马程序员'"
print(name)
# 引号的嵌套,使用转义字符 \ 解除引号的效用
name = '\'黑马程序员\''
print(name)  # '黑马程序员'
name = '\"黑马程序员\"'
print(name)  # "黑马程序员"

"""
以下来源菜鸟教程
"""
# !/usr/bin/python3

string = '123456789'

print(string)  # 输出字符串
# 123456789
print(string[0:-1])  # 输出第一个到倒数第二个的所有字符
# Python中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
# 字符串的截取的语法格式如下:变量[头下标:尾下标:步长]
# 12345678
print(string[0])  # 输出字符串第一个字符
# 1
print(string[2:5])  # 输出从第三个开始到第六个的字符(不包含)
# 345
print(string[2:])  # 输出从第三个开始后的所有字符
# 3456789
print(string[1:5:2])  # 输出从第二个开始到第五个且每隔一个的字符(步长为2)
# 24
print(string * 2)  # 输出字符串两次
# 123456789123456789
print(string + '你好')  # 连接字符串
# 123456789你好
print('------------------------------')
# ------------------------------
print('hello\nrunoob')  # 使用反斜杠(\)+n转义特殊字符
# hello
# runoob
print(r'hello\nrunoob')  # 在字符串前面添加一个 r,表示原始字符串,不会发生转义
# hello\nrunoob

字符串的拼接

# 字符串字面量之间的拼接
print('学IT来黑马'+'月薪过万')
# 字符串字面量和字符串变量的拼接
name = '黑马程序员'
address = '建材城东路9号城'
tel = 4004303030
print('我是:' + name + ',我的地址是:' + address)
# 字符串无法和整数、浮点数拼接
print('我是:' + name + ',我的地址是:' + address + ',我的电话是:' + tel)  # 会出错

# 修改后
print('我是:' + name + ',我的地址是:' + address + ',我的电话是:' + str(tel))
print('我是:' + name + ',我的地址是:' + address + ',我的电话是:%s' % tel)
# 我是:黑马程序员,我的地址是:建材城东路9号城,我的电话是:4004303030

字符串的格式化方式1完成拼接

# 通过占位的形式,完成拼接,格式说明符“%s",注意s是小写
name = '黑马程序员'
message = '学IT来:%s' % name
print(message)  # 学IT来:黑马程序员

# 通过占位的形式,完成数字和字符串的拼接,%表示我要占位,s表示将变量变成字符串放入占位的地方
class_num = 57
avg_salary = 16781
message = 'Python大数据学科,北京%s期,毕业平均工资:%s' % (class_num, avg_salary)
print(message)

# 占位:字符串%s, 整数%d, 浮点数%f
name = '传智播客'
setup_year = 2006
stock_price = 19.99
message = '%s, 成立于:%d,我今天的股价:%f' % (name, setup_year, stock_price)
print(message)

字符串格式化的精度控制

# m.n的形式控制精度
num1 = 11
num2 = 11.345
# 空格空格空格11(5个宽度)
print('数字11宽度限制5,结果:%5d' % num1)  
print('数字11宽度限制1,结果:%1d' % num1)
print('数字11.345宽度限制7,小数精度2,结果:%7.2f' % num2)
print('数字11.345不宽度限制,小数精度2,结果:%.2f' % num2)
"""
数字11宽度限制5,结果:   11
数字11宽度限制1,结果:11
数字11.345宽度限制7,小数精度2,结果:  11.35
数字11.345不宽度限制,小数精度2,结果:11.35
"""

字符串格式化方式2

"""
演示第二种字符串格式化的方式:f"{占位}"
"""
name = '传智播客'
set_up_year = 2006
stock_price = 19.99
# f:format,不理会类型,不做精度控制,原样输出,适合对没有精度要求的快速格式化
print(f'我是{name}, 我成立于:{set_up_year}年, 我今天的股价是:{stock_price}')
# 我是传智播客, 我成立于:2006年, 我今天的股价是:19.99

表达式格式化

# 表达式:一条具有明确执行结果的代码语句,如1 + 1,5 * 2,就是表达式,因为有具体的结果,结果是一个数字
# 又或者,常见的变量定义:name = '张三' age = 11 + 11
# 在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码
"""
演示对表达式进行字符串格式化
"""
print('1 * 1的结果是:%d' % (1 * 1))
print(f'1 * 1的结果是:{1 * 1}')
print('字符串在python中的类型是:%s' % type('字符串'))

"""
1 * 1的结果是:1
1 * 1的结果是:1
字符串在python中的类型是:<class 'str'>
"""

字符串的格式化练习

"""
讲解字符串格式化的课后练习题
"""
# 定义需要的变量
name = '传智播客'
stock_price = 19.99
stock_code = '003032'
stock_price_daily_growth_factor = 1.2
growth_days = 7
print(f'公司:{name},股票代码:{stock_code},当前股价:{stock_price}')
finally_stock_price = stock_price * stock_price_daily_growth_factor ** growth_days
result = '每日增长系数是:%.1f,经过%d天的增长后,股价达到了:%5.2f' % (stock_price_daily_growth_factor, growth_days, finally_stock_price)
print(result)

"""
公司:传智播客,股票代码:003032,当前股价:19.99
每日增长系数是:1.2,经过7天的增长后,股价达到了:71.63
"""

数据输入input语句

# print输出,input输入
"""
演示Python的input语句
获取键盘的输入信息
"""
print('请告诉我你是谁?')
name = input()
print('我知道了,你是:%s' % name)

# print语句放入input内,等同。
name = input('请告诉我你是谁?')
print('我知道了,你是:%s' % name)

# 输入数字类型
num = input('请告诉我你的银行卡密码:')
# input语句内容都认为是字符串
print('你的银行卡密码类型是:', type(num))
# 数据类型转换
num = int(num)
print('你的银行卡密码类型是:', type(num))
num = int(num)
print('你的银行卡密码类型是:', num)

"""
请告诉我你是谁?
john
我知道了,你是:john
请告诉我你是谁?lily
我知道了,你是:lily
请告诉我你的银行卡密码:1
你的银行卡密码类型是: <class 'str'>
你的银行卡密码类型是: <class 'int'>
你的银行卡密码类型是: 1
"""

"""
以下来源菜鸟教程
"""
# 等待用户输入
input("\n\n按下 enter 键后退出。")
"""


按下 enter 键后退出。
"""
# 以上代码中 ,\n\n 在结果输出前会输出两个新的空行。
# 一旦用户按下 enter 键时,程序将退出。(好像输入啥都会然后enter退出)

数据输入input语句练习

# 欢迎登陆小程序
# 定义两个变量,用以获取从键盘输入的内容,并给出提示信息
# 变量1,变量名:user_name,记录用户名称
# 变量2,变量名:user_type,记录用户类型
# 并通过格式化字符串的形式,通过print语句输出欢迎信息,如下:
# 您好:黑马程序员,您是尊贵的:VIP用户,欢迎您的光临。

user_name = input('请输入您的用户名称:')
user_type = input('请输入您的用户类型:')
print('您好:%s, 您是尊贵的:%s用户,欢迎您的光临。' % (user_name, user_type))

"""
请输入您的用户名称:1
请输入您的用户类型:2
您好:1, 您是尊贵的:2用户,欢迎您的光临。
"""

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 3415226167@qq.com
资源 相册