Python 字面类型

  1. 数字字面量:
    • 整形:例如 420-10
    • 浮点型:例如 3.142.0-0.5
    • 科学计数法表示的浮点数字面量:例如 1.5e3 表示 1500。
  2. 字符串字面量:
    • 单引号括起来的字符串字面量:例如 'Hello'
    • 双引号括起来的字符串字面量:例如 "World"
  3. 列表字面量:使用方括号 [] 表示的列表字面量,例如 [1, 2, 3]
  4. 元组字面量:使用圆括号 () 表示的元组字面量,例如 (1, 2, 3)
  5. 集合字面量:使用花括号 {} 表示的集合字面量,例如 {1, 2, 3}
  6. 字典字面量:使用花括号 {} 内部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等等

定义方法语法

# 定义一个方法名为functionName,无参数。打印出666的方法
def functionName():
    print("666")

定义变量语法

Python定义变量语法是:变量名 = 变量值

# 定义一个整数变量
x = 10

# 定义一个字符串变量
name = "Alice"

查看变量的数据类型:type(变量) - int() - str() - float()

注意变量相当于引用。引用是没有数据类型的。只有数据才有数据类型。所以变量可以随便切换其数据的数据类型。

在Java中如果定义一个String name = "张三"; name是变量名,相当于一个引用,但是Java语法中变量指定数据类型后不可改变,不能通过name = 1 得到结果如:Int name = 1; 的效果

注意数据类型可以转换的前提是:将其转str后,内容都一样才可以,你想把Python字符串转换为数字1那肯定不行了

# 定义一个变量 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

# 单行注释

多行注释 “”” some code “””

多行注释有个注意点:拿变量接收一下,即便是多行注释,也是相当于把只赋值给这个变量。比如 x = """你好世界""" print(x) 输出:你好世界

"""
1
2
3
"""

Python运算符

加、减、乘、除、求余

加 = 1 + 1
减 = 10 - 1
乘 = 5 * 5
除 = 10 / 2
求余 = 10 % 3
print("加 ", 加)
print("加 ", str(加)) # str(arg)等价于Java的toString()
print("减 ", 减)
print("乘 ", 乘)
print("除 ", 除)
print("求余 ", 求余)

// 取整除 与 ** 指数

# 取整除 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 条件不成立值

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种定义方法

a = '你好世界'      # 输出:你好世界
b = '"你好世界"'    # 输出:"你好世界"
c = "'你好世界'"    # 输出:'你好世界'

d = """你好世界"""  # 输出:你好世界

e = '\"你好世界\"'  # 输出:"你好世界"
f = "\'你好世界\'"  # 输出:'你好世界'

字符串拼接 +

字符串拼接往往使用 +,要求的前提是:双方都是字符串。

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 = "你好%3d" % (x)  # m=3 宽度是9位(%3d是整形) 3<9    宽约束失效   结果是:你好987654321
z = "你好%10d" % (x)  # m=10 宽度是10位(%3d是整形) 10>9 没失效     结果是:你好 987654321
p = "你好%5f" % (x)  # m=5 宽度是5为(%5f是浮点型) 5<18  宽约束失效,结果是:你好987654321.123457
r = "你好%.5f" % (x)  # m=0,n=5 小数点后位是5为(%5f是浮点型) 保留5为小数,结果是:你好987654321.12346
s = "你好%5.5f" % (x)  # m=5,n=5 小数点后位是5为(%5f是浮点型) 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)

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}"

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

字符串格式化混合案例

"""
定义如下变量
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,经过%1d天的增长后,股价达到了%2.2f"% (stock_price_daily_growth_factor, growth_days, finally_stock_price))
print("公司:{},股票编码:{},当前股价:{}".format(name,stock_code,stock_price))

等待控制台输入内容 input()

python代码就是:input()。但是这个需求在Java实现得用Scanner

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博客搜索:标题关键字。以获取全部资料 ❤