Python学习从0到1 day6 python基础语法4 标识符、运算符和字符串

发布时间:2024年01月19日

苦厄难夺凌云志,不死终有出头日

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?——24.1.18

一、标识符

1.什么是标识符

标识符:用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名

2.标识符命名规则

python中,标识符命名规则主要有三类:

①内容限定

? ? ? ? 标识符命名中,只允许出现:英文、中文、数字、下划线这四类元素,其他都不允许

? ? ? ? 不推荐使用中文

? ? ? ? 数字不能用在开头

②大小写敏感,完全区分

③不可使用关键字作为标识符

关键字:

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

#规则2:大小写敏感
Itheima = "heima"
itheima = 666
# print(itheima)  #666
# print(Itheima)  #heima

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

3.标识符命名规范

变量名、类名、方法名,不同的标识符,有不同的命名规范

变量的命名规范

????????见名知意

????????下划线命名法

????????英文字母全部小写

4.总结

二、运算符

1.算术(数学)运算符

print("1 + 1 = ", 1 + 1)
print("2 - 1 = ", 2 - 1)
print("4 / 2 = ", 4 / 2)
print("9 % 2 = ", 9 % 2)

2.赋值运算符

# 演示python中各类运算符

#算数(数学)运算符
print("1 + 1 = ", 1 + 1)
print("2 - 1 = ", 2 - 1)
print("4 / 2 = ", 4 / 2)
print("9 % 2 = ", 9 % 2)

# 赋值运算符
num = 1 + 2 + 3

# 复合赋值运算符
num = 1
num += 1    #num = num + 1
print("num += 1: ",num)     #num += 1:  2
num -= 1
print("num -= 1: ",num)     #num -= 1:  1
num *= 4
print("num *= 4: ",num)     #num *= 4:  4

num = 3
num %= 2
print("num % 2: ",num)      #num % 2:  1

num **= 2
print("num ** 2: ",num)     #num ** 2:  1

num = 9
num //= 2
print("num % 2: ",num)      #num % 2:  4

3.总结

1.常见的算数(数学)运算符有:

????????加(+)、减(-)、乘(*)、除(/)、整除(//)、取余(%)、求平方(**)

2.赋值运算符有:

? ? ? ? 标准赋值:=

? ? ? ? 复合赋值:+=、-=、*=、/=、//=、%=、**=

三、字符串拓展

1.字符串的三种定义方式

字符串在Python中有多种定义方式:

????????①单引号定义法:name = '一切都会好的'

????????②双引号定义法:name = "一切都会好的"

????????③三引号定义法:name = """一切都会好的"""

三引号定义法:和多行注释的写法一样,同样支持换行操作

使用变量接收它,它就是字符串

不使用变量接收它,就可以作为多行注释使用

#   演示字符串的三种定义方式:
# ①单引号定义法
# ②双引号定义法
# ③三引号定义法

# ①单引号定义法,使用单引号进行包围
name = '一切都会好的'
print(type(name))
# ②双引号定义法:使用双引号进行包围
name = "一切都会好的"
print(type(name))
# 三引号定义法:使用三引号进行包围,和多行注释一样
name = '''一切
都会好的
'''
print(type(name))

字符串的引号嵌套

如果定义的字符串自身包含:单引号、双引号自身

写法:

? ? ? ? ①单引号定义法:可以包含双引号

? ? ? ? ②双引号定义法:可以包含双引号

? ? ? ? ③可以使用转义字符(\)来将引号解除效用,变成普通字符串

# 在字符串内包含双引号
name = '"万事胜意"'
print(name)
# 在字符串内包含单引号
name = "'一切都会好的'"
print(name)
# 使用转义字符 \ 解除引号的效用
name = "\"我一直相信\""
print(name)
name = '\'我一直相信\''
print(name)

总结

1.字符串的三种定义方式:

? ? ? ? 单引号方式

? ? ? ? 双引号方式

? ? ? ? 三引号方式

2.引号的嵌套

? ? ? ? 可以使用:\ 来进行转义

? ? ? ? 单引号内可以写双引号或双引号内可以写单引号

2.字符串拼接

拼接一般用于变量和字符串、变量和变量之间

#字符串字面量之间的拼接
print("一切都会好的"+"我一直相信")

#字符串字面量和字符串变量之间的拼接
better = "一切都会好的"
trust = "我一直相信"
print(better + " " + trust +" " + "万事胜意")

总结

1.如何完成字符串拼接?

? ? ? ? 使用”+“号连接字符串变量或字符串字面量即可

2.有哪些注意事项?

? ? ? ? 无法和非字符串类型进行拼接

3.字符串格式化

name = "一切都会好的"
future = "我一直相信 %s" % name
print(future)

?其中的%s

% 表示:我要占位

s 表示:将变量变成字符串放入占位的地方

所以,综合起来的意思是:我先占个位置 ,等一会有个变量,把它放在%所占到的位置里

多个变量占位,变量要用括号括起来,并按照占位的顺序填入

name = "一切都会好的"
future = "我一直相信 %s" % name
# print(future)
time = 20210723
event = "Rebirth"
print("在%s,发生了事故,但是我活了下来,杀不死我的会让我更强大,我迎来了%s,%s" % (time,event,future))

不同数据类型的占位符号

name = "一切都会好的"
future = "我一直相信 %s" % name
# print(future)
time = 20210723
event = "Rebirth"
print("在%d,发生了事故,但是我活了下来,杀不死我的会让我更强大,我迎来了%s,%s" % (time,event,future))

总结

1.字符串格式化的语法

%占位符????????% 变量

2.常用占位符:

字符串:%s????????整数:%d????????浮点数:%f

4.字符串格式化的精度控制

我们可以使用辅助符号m.n来控制数据的宽度和精度

m,控制宽度,要求是数字(很少使用),设置的密度小于数字自身,不生效

n,控制小数点精度,要求是数字,会进行小数的四舍五入

示例:

%5d:表示将整数的宽度控制在5位,如数字11,被设置为5d,就会变成:[空格][空格][空格]11,用三个空格补足宽度

%5.2f:表示将整数的宽度控制在5位,将小数点精度设置为2

小数点和小数部分也算作宽度计算,如,对11.345设置了%7.2f后,结果是[空格][空格]11.35,两个空格补足宽度,小数部分限制2位精度后,四舍五入为.35

%.2f:表示不限制宽度,只设置小数点精度为2,如11.345设置%.2f后,结果是11.35

num1 = 11
num2 = 11.677
print("数字11宽度限制5,结果是:%5d",num1)
print("数字11宽度限制1,结果是:%1d",num1)
print("数字11.677宽度限制7,小数精度2,结果是:%7.2f",num2)
print("数字11.677宽度不限制,小数精度2,结果是:%.2f",num2)

总结

1.精度控制的语法是:

????????m.n的形式控制,如%5d,%5.2f,%.2f

????????m和.n均可省略

2.如果m比数字本身宽度还小,会发生什么?

? ? ? ? 忽略m,m不生效

3..n会对小数部分做精度控制,同时?

? ? ? ? 会对小数部分四舍五入

5.字符串格式化方法2

通过语法:f"内容(变量)"的格式来快速格式化

示例:

name='lcl'
age = 21
price = 27000
print(f"我是{name},我的年龄是{age},我未来的月薪是{price}")

不限数据类型,同时也不做精度控制,原样输出

总结

1.可以通过

????????f" {变量} {变量}"的方式进行快速格式化

2.这种方式:

????????不理会类型,不做精度控制

????????适合对精度没有要求的时候快速使用

6.对表达式进行格式化

表达式:一条具有明确执行结果的代码语句,或者常见的变量定义

如:

? ? ? ? 1+1、5*2,就是表达式,有具体的结果

如:

? ? ? ? name = “张三”? ? ? ? age = 11 + 11

????????等号右侧的都是表达式,他们有具体的结果,结果赋值给了等号左侧的变量

print("1+1的结果是:%d" % (1+1+4))
print("rebirth_day是:%d" % (21+7+23))
print("字符串的类型是:%s" % type("一切都会好的"))
print(f"1*9的结果是: {1*9}")

在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码

总结

1.表达式是什么?

? ? ? ? 表达式就是一个具有明确结果的代码语句

2.如何格式化表达式

? ? ? ? f"{表达式}"

? ? ? ? "%s %d %f" % (表达式1,表达式2,表达式3)

练习 股价计算小程序

定义如下变量:

? ? ? ? name 公司名

? ? ? ? stock_price,当前股价

? ? ? ? stock_code,股票代码

? ? ? ? stock_price_daily_growth_factor,股票每日增长系数,浮点数类型,比如1.2

? ? ? ? growth_days,增长天数

计算,经过growth_days天的增长后,股价达到了多少钱

使用字符串格式进行输出,如果是浮点数,要求小数点精度2位数

示例输出:

? ? ? ? 公司:公司名,股票代码:xxxxx,当前股价:xxxx? ?? ? ?——> 使用f"(变量)" 输出

? ? ? ? 每日增长系数:xxx,经过7天的增长后,股价达到了:xxxxx? ? ? ? ——> 使用“%占位符的方式输出?

name = "光华"
stock_price = 27.81
stock_code = "021104"
#股价每日增长系数
stock_price_daily_growth_factor = 1.01
growth_days = 36
result_price = stock_price * stock_price_daily_growth_factor **growth_days
print(f"公司:{name},股票代码:{stock_code},当前股价:{stock_price}")
print("每日增长系数:%.2f,经过%d天的增长后,股价达到了:%.2f" % (stock_price_daily_growth_factor,growth_days,result_price))

7.数据输入(input语句)

1.input语句(函数)

????????数据输出:printf

????????数据输入:input()

2.使用也非常简单:

? ? ? ? ①使用input()语句可以从键盘获取输入

? ? ? ? ②使用一个变量接收(存储)input语句获取的键盘输入数据即可

#演示python中的input语句,获取键盘的输入信息
name = input("请您输入您的名字\n")
print("欢迎您,%s" % name)
#输入数字类型
num = input("请告诉我您的生日:")
print(f"您的生日是{num}")
print(type(num))#<class 'str'>
#input语句不管输入什么类型的数据,都会被当作字符串处理
num = int(num)
print(type(num))

总结

1.input()语句的功能是,获取键盘输入的数据

2.可以使用:input(提示信息),用以在使用者输入内容之前显示提示信息

3.要注意,无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型

练习

欢迎登陆小程序

定义两个变量,用以获取从键盘输入的内容,并给出提示信息:

变量1,变量名:user_name,记录用户名称

变量2,变量名:user_type,记录用户类型

并通过格式化字符串的形式,通过print语句输出欢迎信息,如下:

您好,亲爱的user_name,您是user_type用户,欢迎您的光临

user_name = input("请您输入用户名:")
uesr_type = input("请您输入您的用户类型:")
print(f"您好,{user_name},您是尊贵的{uesr_type}用户,欢迎您的光临" )

文章来源:https://blog.csdn.net/m0_73983707/article/details/135660341
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。