Python 字面类型
- 数字字面量:
- 整形:例如
42
,0
,-10
。 - 浮点型:例如
3.14
,2.0
,-0.5
。 - 科学计数法表示的浮点数字面量:例如
1.5e3
表示 1500。
- 整形:例如
- 字符串字面量:
- 单引号括起来的字符串字面量:例如
'Hello'
。 - 双引号括起来的字符串字面量:例如
"World"
。
- 单引号括起来的字符串字面量:例如
- 列表字面量:使用方括号
[]
表示的列表字面量,例如[1, 2, 3]
。 - 元组字面量:使用圆括号
()
表示的元组字面量,例如(1, 2, 3)
。 - 集合字面量:使用花括号
{}
表示的集合字面量,例如{1, 2, 3}
。 - 字典字面量:使用花括号
{} 内部Key:Valuse
表示的字典字面量,例如{'name': 'Alice', 'age': 25}
。
# Python变量直接用:变量名 = 值 即可
整数 = 1 # 整数类型字面量
浮点 = 1.1 # 浮点数类型字面量
科学计数 = 1.5e3 # 科学计数法浮点型类型字面量
字符型 = 'A' 'BC' # 字符型字面量
字符型 = "A" "BC" # 字符型字面量
布尔True = True # 布尔类型字面量:只能是True,不能是true
布尔False = False # 布尔类型字面量:只能是False,不能是false
空值 = None # 空值类型字面量
列表 = [1, 2, 3] # 列表类型字面量
元祖 = (1, 2, 3) # 元祖类型字面量
字典 = {'name': 'Alice', 'age': 25} # 字典类型字面量
数组 = {1, 2, 3} # 数组字面量
Python标识符
我们给方法、变量命名出的名字就叫标识符。在Python中,标识符只允许有:英文、中文、数字、下划线。
给Python标识符命名需要注意:
- 不得以数字开头。
- 中文不建议出现在标识符中!
- 标识符是区分大小写的,Abc 与 abc不是一个标识。
- 不得与Python关键字重复。例如:True、False、None、class、if、else、def、for、continue、not、or、pass、raise、return、try、while、with、yield等等
定义方法语法
代码语言:javascript复制# 定义一个方法名为functionName,无参数。打印出666的方法
def functionName():
print("666")
定义变量语法
Python定义变量语法是:变量名 = 变量值
代码语言:javascript复制# 定义一个整数变量
x = 10
# 定义一个字符串变量
name = "Alice"
查看变量的数据类型:type(变量) – int() – str() – float()
注意变量相当于引用。引用是没有数据类型的。只有数据才有数据类型。所以变量可以随便切换其数据的数据类型。
在Java中如果定义一个String name = “张三”; name是变量名,相当于一个引用,但是Java语法中变量指定数据类型后不可改变,不能通过name = 1 得到结果如:Int name = 1; 的效果
注意数据类型可以转换的前提是:将其转str后,内容都一样才可以,你想把Python字符串转换为数字1那肯定不行了
代码语言:javascript复制# 定义一个变量 x = 数字1
x = 1
# 输出x的数据类型
print("当前x是 ", x, ",其数据类型是", type(x)) # 输出:<class 'int'>
# 修改x = 字符串"1"
x = "1"
# 再输出x的数据类型
print("当前x是 ", x, ",其数据类型是", type(x)) # 输出:<class 'str'>
# 当前的x数据类型是str,我们调用int() 将其数据类型转为int
x = int(x)
print("当前x是 ", x, ",其数据类型是", type(x)) # 输出:<class 'int'>
# 当前的x数据类型是str,我们调用float() 将其数据类型转为float
x = float(x)
print("当前x是 ", x, ",其数据类型是", type(x)) # 输出:<class 'float'>
# 当前的x数据类型是float,我们调用str() 将其数据类型转为str,注意:会导致精度丢失哦!
x = str(x)
print("当前x是 ", x, ",其数据类型是", type(x))# 输出:<class 'str'>
>>> 输出结果是:
当前x是 1 ,其数据类型是 <class 'int'>
当前x是 1 ,其数据类型是 <class 'str'>
当前x是 1 ,其数据类型是 <class 'int'>
当前x是 1.0 ,其数据类型是 <class 'float'>
当前x是 1.0 ,其数据类型是 <class 'str'>
注释
单行注释 # some code
代码语言:javascript复制# 单行注释
多行注释 “”” some code “””
多行注释有个注意点:拿变量接收一下,即便是多行注释,也是相当于把只赋值给这个变量。比如 x = “””你好世界””” print(x) 输出:你好世界
代码语言:javascript复制"""
1
2
3
"""
Python运算符
加、减、乘、除、求余
代码语言:javascript复制加 = 1 1
减 = 10 - 1
乘 = 5 * 5
除 = 10 / 2
求余 = 10 % 3
print("加 ", 加)
print("加 ", str(加)) # str(arg)等价于Java的toString()
print("减 ", 减)
print("乘 ", 乘)
print("除 ", 除)
print("求余 ", 求余)
// 取整除 与 ** 指数
代码语言:javascript复制# 取整除 17除3=5.666
x = -17 // 3
print(x) # 输出:-6 为啥呢?我们看成水平x轴 -6,-5.666,-5。按照常理我们抹去0.666得到是-5,都去除小数了,你变成-5 反而变大了嘛,所以是-6。
n = 17 // 3
print(n) # 输出:5
print(-1//3) # 输出:-1 为啥呢:我们看成水平x轴 -1,-0.333,-0。按照常理我们抹去0.333得到是0。规则是去除小数,你变成-5 不是变大了嘛,所以是-6。
# 指数 2的3次方
y = 2**3;
print(y) # 输出:8
三元运算符
Python三元运算符与Java语法非常别扭
Java三元运算符是:条件:条件成立值?条件不成立值
Python三元运算符是:条件成立值 if 条件 else 条件不成立值
代码语言:javascript复制x = 10
y = 8
c = x if x > y else y
print(c) # 输出10
赋值运算符
关于赋值运算符:通用格式就是:运算符=数值
- 格式是 x = 2;就是先 1,再去赋值。
- 格式是 x -= 2;就是先-1,再去赋值。
- 格式是 x *= 2;就是先*2,再去赋值。
- 格式是 x /= 2;就是先/2,再去赋值。
例如 x = 1; x = 2 结果是 x = 1 2 =3
例如 x = 1; x -= 2 结果就 -1;
字符串操作
字符串3种定义方法
代码语言:javascript复制a = '你好世界' # 输出:你好世界
b = '"你好世界"' # 输出:"你好世界"
c = "'你好世界'" # 输出:'你好世界'
d = """你好世界""" # 输出:你好世界
e = '"你好世界"' # 输出:"你好世界"
f = "'你好世界'" # 输出:'你好世界'
字符串拼接
字符串拼接往往使用 ,要求的前提是:双方都是字符串。
代码语言:javascript复制x = "A"
y = "B"
z = x y
print(z) # 输出:AB
x = "A"
y = 1
# 报错 z = x y
# 使用 拼接时候,注意类型必须是str
字符串格式化 (3种)
- 百分号(%)进行格式化
- 使用 format() 方法进行格式化:
- f-strings 进行格式化(Python 3.6 )
百分号字符串格式法
百分号字符串占位符格式法的占位符有3种
- %s 字符型占位符
- %d 整形型占位符
- %f 浮点型占位符
x = "世界"
y = "你好%s" % x
print(y) # 输出:你好世界
x = 1
y = "你好%s" % (x)
z = "你好%d" % (x)
p = "你好%f" % (x)
print(y) # 输出:你好1
print(z) # 输出:你好1
print(p) # 输出:你好1.000000
x = "世界"
z = " zanglikun.com"
y = "你好%s%s" % (x, z)
print(y) # 你好世界 zanglikun.com
print("=======================")
# 浮点站位的精度控制 格式如下:%m.nd,其中m是宽度,n是小数点数字(四舍五入),如果不输入默认n是6位。f是浮点型。如果m宽度小于有效类型的位数,则会导致失效
x = 987654321.123456789
y = "你好=" % (x) # m=3 宽度是9位(=是整形) 3<9 宽约束失效 结果是:你好987654321
z = "你好d" % (x) # m=10 宽度是10位(=是整形) 10>9 没失效 结果是:你好 987654321
p = "你好_" % (x) # m=5 宽度是5为(_是浮点型) 5<18 宽约束失效,结果是:你好987654321.123457
r = "你好%.5f" % (x) # m=0,n=5 小数点后位是5为(_是浮点型) 保留5为小数,结果是:你好987654321.12346
s = "你好%5.5f" % (x) # m=5,n=5 小数点后位是5为(_是浮点型) 5<9 宽约束失效,同时保留5为小数,结果是:你好987654321.12346
print(y) # 输出:你好987654321
print(z) # 输出:你好 987654321
print(p) # 输出:你好987654321.123457
print(r) # 输出:你好987654321.12346
print(s) # 输出:你好987654321.12346
format() 方法进行字符串格式化
这是一种更现代化的字符串格式化方法,使用 format()
方法来指定插入变量的位置和格式。示例如下:
格式:”姓名{},年龄 {}”.format(name,age)
代码语言:javascript复制name = "Bob"
age = 30
message = "My name is {} and I am {} years old.".format(name, age)
print(message) # 输出是:My name is Bob and I am 30 years old.
f-strings 进行字符串格式化(不限制数据类型,但不能控制精度)
f-strings 是一种简洁而强大的字符串格式化方式,使用前缀 f
来指示字符串中的表达式,并使用花括号 {}
插入变量。示例如下
格式:f”姓名{name},年龄{age}”
代码语言:javascript复制name = "Charlie"
age = 35
message = f"My name is {name} and I am {age} years old. Money:{1 1}"
print(message) # 输出:My name is Charlie and I am 35 years old. Money:2
字符串格式化混合案例
代码语言:javascript复制"""
定义如下变量
name:公司名:中国国家电脑
stock_price:当前股价:19.99
stock_code:股票编码:003032
stock_price_daily_growth_factor:每日增长系数:1.2
growth_days:连续增长天数:7
输出:
公司:中国国家电脑,股票编码:003032,当前股价:19.99 -- 这一行必须使用f-string法
每日增长系数1.2,经过7天的增长后,股价达到了71.63 -- 这一行必须使用百分比占位法
公司:中国国家电脑,股票编码:003032,当前股价:19.99 -- 这一行必须使用string.format()法
"""
name = "中国国家电脑"
stock_price = 19.99
stock_code = "003032"
stock_price_daily_growth_factor = 1.2
growth_days = 7
finally_stock_price = stock_price * stock_price_daily_growth_factor ** growth_days
print(f"公司:{name},股票编码:{stock_code},当前股价:{stock_price}")
print("每日增长系数%2.1f,经过天的增长后,股价达到了%2.2f"% (stock_price_daily_growth_factor, growth_days, finally_stock_price))
print("公司:{},股票编码:{},当前股价:{}".format(name,stock_code,stock_price))
等待控制台输入内容 input()
python代码就是:input()。但是这个需求在Java实现得用Scanner
代码语言:javascript复制print("请告诉我你是谁?")
name = input()
print(f"原来你是:{name}")
# 无论如何intput()得到的结果都是str类型,如果你需要数字类型,需要额外转换一下。例如:int(name) 才能将其转为数字类型、转换可能会遇到异常,注意哦!
age = input("input参数:可以放提示信息:比如你的年龄是:")
print("输入的年龄是:{},类型是{}".format(age,type(age)))
age = int(age)
print("转换int后 刚才输入的年龄是:{},类型是{}".format(age,type(age)))
特殊说明: 上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com 第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取全部资料 ❤