参考视频
字面量
字面量,在代码中被写下来的固定的值,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