python 入门
CMD 命令行运行
>>> print("hello world")
hello world
字面量
字面量: 在代码中,被写下来的固定的值叫字面量
python中有哪些值可以被写下来
python 中常见的6中数据类型
数字分为以下几种
整数(int): 如10,-10
浮点数(float):如3.14 、-3.14
复数(complex):如4+3j,以j结尾表示复数
布尔(bool):表达生活中逻辑,即真和假,True表示真,false表示假;true本质上是一个数字1,false为0
字符串
字符串(string)由任意数量的字符组成;又称为文本,任意数量的字符如中文、英文、各类符号等组成。所以叫做字符的串;python里,字符串需要用双引号“”包围起来
列表
列表(list):有序的可变序列;python中使用最频繁的数据类型,可有序列记录一堆数据
元素
元素(Tuple):有序不可变序列;可有序列记录一堆不可变的Python数据集合
集合
集合(set):无序不重复集合;可无序记录一堆不重复的python数据集合
字典
字典(Dictionary):无序key-Value 集合;可无序记录一堆Key-Value型的python数据集合
字符串示例
#"chenxi"
print("chenxi")
print(888)
#执行结果
# D:\python_demo\.venv\Scripts\python.exe D:\python_demo\demo1\demo1.py
# chenxi
# 888
#
# 进程已结束,退出代码为 0
python 里面的注释
注释: 在代码中对程序进行解释说明
作用:注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看到代码作用,能够大大增强程序的可读性
单行注释: 以#号开头,#右边的所有文字只能当作说明,而不是当真要执行,起到辅助作用
#单行注释
多行注释:以一对三个双引号引起来解释说明一段代码的作用使用方法
""" 多行注释 """
变量
理解变量作用及特征
什么是变量
变量: 在程序运行时,能存储计算机结果或能表示值的抽象概念
简单说: 变量就是在程序运行时,记录数据用的
定义格式
变量名= 变量的值
掌握变量的定义方法
#"chenxi"
print("chenxi")
print(888)
money = 50
print("钱包",money)
#执行结果
#D:\python_demo\.venv\Scripts\python.exe D:\python_demo\demo1\demo1.py
#chenxi
#888
#钱包 50
示例2
#"chenxi"
print("chenxi")
print(888)
money = 50
print("钱包",money)
money = money -10
print("剩余",money)
#执行结果
#D:\python_demo\.venv\Scripts\python.exe D:\python_demo\demo1\demo1.py
#chenxi
#888
#钱包 50
#剩余 40
变量在程序运行时,记录数据用的
格式
变量名=变量值
变量特征
变量的值可以改变
数据类型
数据是有类型的
入门接触3类数据类型
字符串类型(string):用引号引起了的数据都是字符串
整型(int):数字类型(有符号)数字类型,存放整数如-1,10,0等
浮点型(float):浮点型(有符号)数字型,存放小数如-3.14,6.66
type() 语句
可以通过type()语句得到数据类型:
语法: type(被查看类型的数据)
方式1
money = 50 money = money -10 print(type(66)) print(type(money)) #执行结果 #D:\python_demo\.venv\Scripts\python.exe D:\python_demo\demo1\demo1.py #<class 'int'> #<class 'int'>
方式2 str是string 的缩写
string_type = type("老鼠爱大米")
int_type = type(666)
float_type = type(1.1)
print(string_type)
print(int_type)
print(float_type)
"""
执行结果
D:\python_demo\.venv\Scripts\python.exe D:\python_demo\demo1\demo2.py
<class 'str'>
<class 'int'>
<class 'float'>
"""
方式3使用type()语句查看变量中存储数据类型信息
#from sys import float_repr_style
string_type = type("老鼠爱大米")
int_type = type(666)
float_type = type(1.1)
print(string_type)
print(int_type)
print(float_type)
name = "老鼠爱大米"
name_type = type(name)
print(name_type)
"""
执行结果
D:\python_demo\.venv\Scripts\python.exe D:\python_demo\demo1\demo2.py
<class 'str'>
<class 'int'>
<class 'float'>
<class 'str'>
"""
变量在Python里是没有类型的;可以通过type(变量)可以输出类型,这是查看的是变量存储数据的类型
python 数据语法
数据类型转换
1)从文件里读取的数字,默认是字符串,需要转换成数字类型
2)后续学习input()语句,默认是字符串,若需要数字转换
3)将数字转成字符串用以写出外部系统
语句函数;直接带有结果的
int(x) : 将x转为一个整数
float(x): 将x转为浮点数
str(x): 将x转为字符串
# 将数字转换成字符串
t = 9
s = str(t)
s1 = str(76)
#将字符串转换数字
t = "89"
i = int(t)
i1 = int("56")
print("s的类型:",type(s),s)
print("s1的类型",type(s1),s1)
print("i的类型",type(i),i)
print("i1的类型",type(i1),i1)
#浮点数转字符串
f = 11.6
sf = str(f)
#字符串转浮点数
r = "3.14"
f2 = float(r)
print("sf 的类型",type(sf),sf)
print("f2的类型",type(f2),f2)
# 整数与浮点数转换
#浮点数转整数精度会丢失
d = 3.14
d1 = int(d)#结果是3
print("d1<UNK>",type(d1),d1)
c = 7
c1 = float(c)
print("c1<UNK>",type(c1),c1)
"""
错误示例
num3 = int("小熊小熊")
print("num3<UNK>",type(num3),num3))
"""
"""
执行结果
s的类型: <class 'str'> 9
s1的类型 <class 'str'> 76
i的类型 <class 'int'> 89
i1的类型 <class 'int'> 56
sf 的类型 <class 'str'> 11.6
f2的类型 <class 'float'> 3.14
d1<UNK> <class 'int'> 3
c1<UNK> <class 'float'> 7.0
进程已结束,退出代码为 0
"""
总结
1任何类型都可以转成字符串
2.字符串不可以随意转成数字
3.浮点数转成整数精度会丢失
标识符
在python 程序中,我们可以给很多东西起名字比如:变量的名字、方法的名字、类的名字等等。这些名字统称为标识符。
标识符命名规则有3类:
内容限制: 标识符命名中只允许出现:英文、中文、数字、下划线(_)这四类元素;其余任何内容都不被允许;注意不推荐使用中文;不可以以数字开头
大小写敏感:
以定义变量为例
Andy = "安迪1" andy = "安迪2" print(andy) print(Andy) #字母a的大小写,是完全能够分开的 """ 安迪2 安迪1 进程已结束,退出代码为 0 """
不可以使用关键字
python 中有一系列关键字;关键字在python中有特殊用途,不可以使用他们作为标识符
False 、True、 None、 and、 as、 assert、 break、 class、 continue 、def、 del、 elif、 else、 except、 finally、 for、 from 、 global、 if、 import、 in、 is、 lambda、 nonlocal、 not、 or、 pass、 raise、 return、 while、 with 、yield
标识符命名规范变量名、类名、方法名不同标识符有不同规范
变量的命名规范:
见名之意: 简单明了看到名字就知道做什么用的;简洁,尽量在确保明了的前提下,减少名字的长度
下划线命名:多个单词组合变量名,要使用下划线做分隔
英文字母全小写
# 规则1: 内容限定,只允许中文、英文、数字、下划线;不可以数字开头 # 错误示范:1_name="小熊" # 错误示范:name_!="小鹿" #正确 name = "葡萄" #规则2:大小写敏感 ID1= "柚子" id1= "句子" print(ID1) print(id1) # 规则3:可以使用关键字 # 错误示例: class = 1
总结
1标识符: 用户编写代码是,对变量、类、方法等编写的名字,叫标识符
2.标识符命名规则: 内容限制( 标识符命名中只允许出现:英文、中文、数字、下划线(_)这四类元素)、大小写敏感、不可以使用关键字
python 的运算符
python 中常见运算符;赋值运算
算术运算符
| 运算符 | 说明 | 示例 | 结果 | | ---- | --------- | -------- | ----- | | `+` | 加法 | `3 + 2` | `5` | | `-` | 减法 | `3 - 2` | `1` | | `*` | 乘法 | `3 * 2` | `6` | | `/` | 除法(返回浮点数) | `5 / 2` | `2.5` | | `//` | 整除(向下取整) | `5 // 2` | `2` | | `%` | 取余(求余数) | `5 % 2` | `1` | | `**` | 幂运算(指数) | `2 ** 3` | `8` |
运算优先级
和数学中的规则类似:
()括号**幂运算*、/、//、%+、-
示例
#算术运算符:加+、减-、乘*、除/ 取整除// 取余%、指数**
print("1+1=",1+1)
print("5-1=",5-1)
print("2*8=",2*8)
print("8/4=",8/4)
print("11//2=",11//2)
print("11%2=",11%2)
print("(2+1)*2 =",(2+1)*2)
print("3*2**3=",3*2**3)
print("2+2*3=",2+2*3)
"""
执行结果
1+1= 2
5-1= 4
2*8= 16
8/4= 2.0
11//2= 5
11%2= 1
(2+1)*2 = 6
3*2**3= 24
2+2*3= 8
进程已结束,退出代码为 0
"""
赋值运算符
| 运算符 | 示例 | 等价于 | | ----- | --------- | ------------ | | `=` | `a = 10` | 赋值 | | `+=` | `a += 5` | `a = a + 5` | | `-=` | `a -= 5` | `a = a - 5` | | `*=` | `a *= 5` | `a = a * 5` | | `/=` | `a /= 5` | `a = a / 5` | | `//=` | `a //= 5` | `a = a // 5` | | `%=` | `a %= 5` | `a = a % 5` | | `**=` | `a **= 5` | `a = a ** 5` |
示例
# 赋值运算符= num = 1+2*4 #复合 num += 1 print(num) #10 num -=2 print(num)#8 num *=2 print(num)#16 num /=2 print(num)#8.0 num //= 2 print(num) num %=2 print(num)#0.0 """ 10 8 16 8.0 4.0 0.0 进程已结束,退出代码为 0 """
字符串扩展
字符串的三种定义形式
1)单引号
2)双引号
3)三引号
name1 ='小希' name2 ="小天" name3 ="""小杜"""
三引号定义法,和多行注释的写法一致,同时支持换行操作。使用变量接收它,它就是字符串,不用变量接收他就是注释
name1 ='小希' name2 ="小天" name3 ="""小杜""" names = """ 小希 小光 小龙 """ print(name1) print(name2) print(name3) print(names) """ 执行结果 小希 小天 小杜 小希 小光 小龙 进程已结束,退出代码为 0 """
字符串的引号嵌套
1)单引号定义法,可以在内含双引号
2)双引号定义法,可以内含单引号
3)可以使用转义字符(\)来将引号解除,变成普通字符串
#单引号里面使用双引号 name = '东海龙宫"金箍棒"' #双引号使用单引号 name1 = "花果山水帘洞'齐天大圣'" #双引号里使用转义符 name3 = "五庄观\"镇元子\"" #单引号里使用转义符 name4 = '狮驼岭\'青狮白象\'' print(name) print(name1) print(name3) print(name4) """ 执行结果 东海龙宫"金箍棒" 花果山水帘洞'齐天大圣' 五庄观"镇元子" 狮驼岭'青狮白象' 进程已结束,退出代码为 0 """
总结
字符串定义的三种方式
1)单引号
2)双引号
3)三引号
引号嵌套
可以使用:\进行转义;单引号里可以写双引号或者双引号里写单引号
字符串拼接
如果两个字符串变量(文本)字面量,可以将其拼接成一个字符串,通过+即可完成
c = '和🍊'
h = '学python'
d = '橙子'
print("臣妾要告发"+d+"私通python")
print(c+h)
#细节
tel = 10086
#print(c+tel)# 数字不可以这么和字符串拼接
#print(c+9)# 不可以和字符串拼接
"""
臣妾要告发橙子私通python
和🍊学python
进程已结束,退出代码为 0
"""
字符串格式化
通过站位形式拼接字符串(字符串格式化)
可以通过字符串格式化和变量的快速拼接
1) %表示站位
2)s:将变量变成字符串放入占位的地方
所以,综合起来的意思,先占个位置,等会有个变量过来,把它变成字符串放到占位的位置
name = '🍊🍊' message = '学python找%s'%name print(message) class_num = 66 avg_salary = 10000 message = "Python 数据分析,第%s期,毕业薪资:%s" %(name, avg_salary)#多个变量占位,用括号括起来同时用逗号隔开,顺序不可以变 print(message) """ 学python找🍊🍊 Python 数据分析,第🍊🍊期,毕业薪资:10000 进程已结束,退出代码为 0 """
python 中,其实支持非常多的数据类型站位的
最常用的如下三类
%s: 将内容转成字符串,放入占位位置
%d:将内容转换成整数,放入占位位置
%f:将内容转成浮点型,放入占位位置
name = "橙子" year = 999 price = 0.7 message = "我是:%s,今年:%d,我今天价格为:%f" %(name, year, price) print(message) """ 执行结果 我是:橙子,今年:999,我今天价格为:0.700000 进程已结束,退出代码为 0 """
小结
字符串格式的语法:“%占位符” %变量
常用占位符: %s、%d、%f
格式化精度控制
精度控制可以使用辅助符号“m.n”来控制数据的宽度和精度
m:控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效
.n: 控制小数点精度,要求数字,会进行小数的四舍五入
示例
%5d:表示将整数的宽度控制在5位,;如11,被设置为5d,就会变成:[空格][空格][空格]11,用三个空格补齐宽度。
%5.2f:表示将宽度控制为5,将小数点精度设置为2
小数点和小数部分也算入宽度计算。如,对11.345设置了%7.2f后,结果是:[空格][空格][空格]11.35。2格空格补足宽度,小数部分限制后2位精度,四舍五入为.35
%2f:表示不限制宽度,只设置小数点精度为2,如11.345设置%2,如11.345设置%.2后,结果是11.35
num1 = 11
num2 = 11.345
print("数字11宽度设置5,结果是:%5d" % num1)
print("数字11宽度设置5,结果是:%1d" % num1)
print("数字11.345宽度设置7,小数精度2,结果:%7.2f" % num2)
print("数字11.345不设置宽度,小数精度2,结果:%.2f" % num2)#宽度算小数点
"""
数字11宽度设置5,结果是: 11
数字11宽度设置5,结果是:11
数字11.345宽度设置7,小数精度2,结果: 11.35
数字11.345不设置宽度,小数精度2,结果:11.35
进程已结束,退出代码为 0
"""
小结
1.精度控制语句
m.n 的形式控制,如%5d、%5.2f、%.2
m和n均可以省略
2.如果m的比数字本身宽度还小,m 不会生效
3.n会对小数部分精度限制,同时会四舍五入
字符串格式化2
目前通过%符号占位已经很方便了,还能进行精度控制;更加便捷的方式
name = "水果橙子"
born_yrar = 1900
pre_price = 7.99
print(f"我是{name},出生于:{born_yrar}年,我今天市场价格{pre_price}")#这种方式不做精度控制
"""
我是水果橙子,出生于:1900年,我今天市场价格7.99
进程已结束,退出代码为 0
"""
小结
可以通过f“{变量}{变量}”的方式进行快速格式化;这种方式不理会变量类型;不做精度控制;适合对精度没有要求的时候快速使用
表达式格式化
表示式:一条具有明确执行结果的代码语句
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'>
进程已结束,退出代码为 0
"""
小程序
name = '橙子'
pre_price = 19.99
good_num = 1
pre_price_daily_growth_factor = 1.2
growth_days=5
t = 19.99*1.2**7
print(f"产品:{name},编号:{good_num},当前价格:{pre_price}")
print("每日增长:%d,经过:%d天增长,均价达到:%.2f" %(pre_price_daily_growth_factor,growth_days,t))
"""
产品:橙子,编号:1,当前价格:19.99
每日增长:1,经过:5天增长,均价达到:71.63
进程已结束,退出代码为 0
"""
数据输入
input语句
在python中,从键盘读取输入input
数据输出print
数据输入input
使用非常简单
使用input()语句可以从键盘获取输入;使用一个变量接收输入数据即可
方式1
print("请告诉我你的名字")
name = input()
print("你好!我是:%s" % name)
"""
请告诉我你的名字
橙子
你好!我是:橙子
进程已结束,退出代码为 0
"""
方式2
name = input("你的名字:")
print("你好!我是:%s" % name)
num = input("银行卡号密码:")
# 数据类型转换
num = int(num)
print("你的银行卡密码的类型是",type(num))
"""
你的名字:橙子
你好!我是:橙子
银行卡号密码:123
你的银行卡密码的类型是 <class 'int'>
进程已结束,退出代码为 0
"""
小结
1.input 语句的功能是,获取键盘输入的数据
2.可以使用:input(提示信息),用以在使用者输入内容之前显示提示信息
3.要注意,无论键盘输入什么类型的数据,获取的数据永远字符串类型,如果需要其他类型需要换行
认识BUG
所谓BUG,是程序中的错误,如果程序有错误,需要程序员排错,纠正错误
#定义变量:存储变量
my_name = 'TOM'
print(my_name)
#定义变量:存储数据
schoolName = '我是橙子粉丝'
#print(schoolname)#报错位置
print(schoolName)
"""
Traceback (most recent call last):
print(schoolname) 提示bug 报错位置
^^^^^^^^^^
NameError: name 'schoolname' is not defined. Did you mean: 'schoolName'?
TOM
修正bug后
TOM
我是橙子粉丝
进程已结束,退出代码为 0
"""
Debug 工具是pyCharm IDE 中集成的用来调试程序的工具,在这里程序员可以查看程序的执行细节和流程或者调解bug
Debug 工具使用步骤
1.打断点
2.Debug 调试


浙公网安备 33010602011771号