Python变量之白首如新,倾盖如故

时间:2022-10-15 06:15:19

python中的变量

变量:将运算的中间结果暂存到内存中,方便后续程序调用。

变量的命名规则:
1、变量名由字母、数字、下划线组成。
2、变量名可以用字母、下划线开头,但是不能以数字开头。
3、变量名是区分大小写的。
4、变量名不能使用关键字。
5、变量名最好不要用中文或者拼音。
6、变量名最好起的要有意义,具有描述性。
7、变量名最好不要太长。
8、变量名最好使用驼峰命名法或者下划线命名法。

常量:所谓常量就是不可修改的变量。
在python中不存在绝对的常量,约定俗成的是常量名全部大写。

python中的注释:
单行注释:#是单行注释
多行注释:三个单引号'''  '''或者三个双引号"""   """。

python基本数据类型:
1、数字类型-int、float、long、complex
2、字符串类型str
3、bool类型
4、列表类型-list
5、元组类型-tuple
6、字典类型-dict
7、集合类型-set

字符串的格式化输出

1、单引号的方式

buf = 'Hello World'

2、双引号的方式

buf = "Hello World"

3、三个单引号('''   ''')("""    """),最主要的是可以换行.

buf = """
窗前明月光,
疑似地上霜.
举头望明月,
低头思故乡.
"""

4、字符串可以执行拼接或者乘法的操作,如下:
4.1 字符串拼接操作:

buf = "abc"
buf_1 = "def"
buf_2 = buf + buf_1 + "ghk"

注意:字符串的拼接只能是同类型

4.2 字符串乘法操作:

name = "小明"
buf = name * 10 # 相当于复制10次变量name

字符串格式化输出
格式化输出常用参数:
%s:非常强大,可以接收任意类型的数据并转化成str类型输出。
%c:整数:将数字转换成其ASCII/unicode对应的值,(py27则只支持0-255)。
%o:将整数转换成八进制表示。
%x:将整数转换成十六进制表示。
%d:将整数、浮点数转换成 十 进制表示。
%e:将整数、浮点数转换成科学计数法(小写e)。
%E:将整数、浮点数转换成科学计数法(大写E)。
%f: 将整数、浮点数转换成浮点数表示(默认保留小数点后6位)。
%g:自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数 法,如果是科学计数则是e;)。
%G:自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数 法,如果是科学计数则是E;)。
%:当字符串中存在格式化标志时,需要用 %%表示一个百分号 注:Python中百分号格式化是不存在自动将整数转换成二进制表示的方式。

格式化输出 1

name = "小明"
age = 18
buf = "你好%s,你今年是%d了吗" % (name,age)
print(buf)
# 打印内容如下
你好小明,你今年是18了吗

格式化输出 2

name = "小明"
age = 18
buf = "你好%(name)s,你今年是%(age)d了吗" % {"name":name,"age":age}
print(buf)
# 打印内容如下
你好小明,你今年是18了吗

格式化输出 3

name = "小明"
age = 18
buf = f"你好{name},你今年是{age}了吗"
print(buf)
# 打印内容如下
你好小明,你今年是18了吗

格式化输出 4

name = "小明"
age = 18
print("你好{},你今年是{}了吗" .format(name,age))
# 打印内容如下
你好小明,你今年是18了吗

格式化输出 5

name = "小明"
age = 18
print("你好{1},你今年是{0}了吗?".format(age,name))
# 打印内容如下
你好小明,你今年是18了吗?

格式化输出 6

name = "小明"
age = 18
print("你好{name},你今年是{age}了吗?".format(name=name,age=age))
# 打印内容如下
你好小明,你今年是18了吗?

获取用户输入input():

使用input('提示信息')函数获取用户输入。
变量 = input('提示信息') #会将用户输入的信息以str的形式保存到变量中。

buf = input('>>>请输入内容:')
print(f'用户输入的内容是:{buf},变量的数据类型是:{type(buf)}')
# 打印内容如下
>>>请输入内容:123
用户输入的内容是:123,变量的数据类型是:<class 'str'>

字符串str常用方法

capitalize():首字母大写,并且将其它字符全部转换成小写。

buf = 'abc_123'
temp = 'abC_123!@#'
print(buf.capitalize())
print(temp.capitalize())
# 打印内容如下
Abc_123
Abc_123!@#

casefold():该方法是Python3.3版本之后引入的,其作用和 lower() 方法相似,可以将字符串中的大写转换为小写。  两者的区别是:lower() 方法只对ASCII编码,也就是‘A-Z’有效,对于其他语言(非汉语,如德语,法语等)中把大写转换为小写的情况只能用 casefold() 方法。相比于lower(),casefold()的功能更加强大。

buf = 'ABc_123'
temp = 'abC_123!@#'
print(buf.casefold())
print(temp.casefold())
# 打印内容如下
abc_123
abc_123!@#

islower():如果字符串中的字符全是小写返回True,否则返回Flase。

buf = 'abc_123'
temp = 'abC_123!@#'
print(buf.islower())
print(temp.islower())
# 打印内容如下
True
False

ljust((width[, fillchar]):指定字符串的宽度,将字符串显示在左侧,如果字符串的长度不够使用指定的字符进行填充。

rjust((width[, fillchar]):指定字符串的宽度,将字符串显示在右侧,如果字符串的长度不够使用指定的字符进行填充。

center(width[, fillchar]):指定字符串的宽度,将字符串显示在中间的位置,如果字符串的长度不够使用指定的字符进行填充。

参数:

width:设置字符串的宽度。

fillchar:如果字符串的长度不够,设置填充的字符。

示例:

buf = 'abc'
print(buf.ljust(20,'#')) # 设置字符串的跨度为20,如果字符串的长度不够用#填充
print(buf.center(20,'#'))
print(buf.rjust(20,'#'))
# 打印内如如下
abc#################
########abc#########
#################abc

count(substring, start, end):统计字符串中substring的数量。

参数:

substring:需要统计的字符串。

start:从起始位置开始统计。

end:到end位置接收。

示例:

buf = 'abacddaaa'
print(f'统计所有字符a的个数:{buf.count("a")}')
print(f'统计字符串前五个字符中a的个数:{buf.count("a",0,5)}')
# 打印内容如下
统计所有字符a的个数:5
统计字符串前五个字符中a的个数:2

encode(encoding='utf-8', errors='strict'):字符串的编码方式,返回字节。

buf = 'abc'
print(buf.encode(encoding='utf-8'))
# 打印内容如下
b'abc'

endswith(suffix[, start[, end]]):判断是不是以suffix结尾,如果是返回True,否则返回False。

参数:

suffix:结尾字符串。

start:从start处开始

end:到end结束

示例:

buf = 'abcdef'
print(buf.endswith('def'))
print(buf.endswith('def',4,5))
print(buf.endswith('abc'))
# 打印内容如下
True
False
False

find(sub[, start[, end]]):查找元素下标,如果找到返回元素下标,如果找不到返回-1。

参数:

sub:需要查找的元素。

start:从start处开始

end:到end结束

示例:

buf = 'abcdef'
print(f'元素d的下标是:{buf.find("d")}')
print(f'元素z的下标是:{buf.find("z")}')
# 打印内容如下
元素d的下标是:3
元素z的下标是:-1

index(sub[, start[, end]]):查找元素下标,如果找到返回元素下标,如果找不到会报错。

find(sub[, start[, end]]):查找元素下标,如果找到返回元素下标,如果找不到返回-1。

参数:

sub:需要查找的元素。

start:从start处开始。

end:到end结束。

示例:

buf = 'abcddef'
print(f'元素d的下标是:{buf.index("d")}')
print(f'元素z的下标是:{buf.index("z")}')
# 打印内容如下
元素d的下标是:3
Traceback (most recent call last):
File "C:\Users\id_iot\Desktop\1.py", line 3, in <module>
print(f'元素z的下标是:{buf.index("z")}')
ValueError: substring not found

isalnum():如果字符串是由字符或者数字返回True,否则返回Flase。

buf = 'abcddef123'
temp = 'abc_123+='
print(buf.isalnum())
print(temp.isalnum())
# 打印内容如下
True
False

isalpha():如果字符串是由字母或者汉字返回True,否则返回Flase。

buf = 'abcddef你好asdf'
temp = 'abc123'
print(buf.isalpha())
print(temp.isalpha())
# 打印内容如下
True
False

isdecimal():如果字符串是由十进制数字组成返回True,否则返回Flase。

buf = 'abc123'
temp = ''
print(buf.isdecimal())
print(temp.isdecimal())
# 打印内容如下
False
True

isdigit():如果字符串是由数字组成返回True,否则返回Flase。

buf = 'abc123'
temp = ''
print(buf.isdigit())
print(temp.isdigit())
# 打印内容如下
False
True

 isidentifier():如果字符串是由字母数字或者下划线组成返回True,否则返回Flase。

buf = 'abc_123'
temp = 'abc_123!@#'
print(buf.isidentifier())
print(temp.isidentifier())
# 打印内如如下
True
False

isnumeric():如果字符串是由数字组成返回True,否则返回Flase。

buf = 'abc12'
temp = ''
print(buf.isnumeric())
print(temp.isnumeric())
# 打印内容如下
False
True

isprintable():如果字符串中没有换行,制表符等返回True,否则返回Flase。

buf = 'abc_123!@#$%你好'
temp = 'abc_123!@#$%你好\n'
print(buf.isprintable())
print(temp.isprintable())
# 打印内容如下
True
False

isspace():如果字符串是空格(注意:''不是空格)则返回True,否则返回Flase。

buf = 'abc 123'
temp = ' '
print(buf.isspace())
print(temp.isspace())
# 打印内容如下
False
True

istitle():如果字符串是以大写开头返回True,否则返回Flase。

buf = 'aBc123'
temp = 'Abc123'
print(buf.istitle())
print(temp.istitle())
# 打印内容如下
False
True

isupper():如果字符串中的字符全是大写返回True,否则返回Flase。

buf = 'aBc123'
temp = 'ABC123'
print(buf.isupper())
print(temp.isupper())
# 打印内如如下
False
True

join(iterable):将可迭代对象转换成字符串,iterable是可迭代对象,注意:iterable的元素必须是字符串否则会报错。

buf = ['a','b','c']
temp = [1,2,3]
print('_'.join(buf)) # 转换字符串以"_"进行分隔
print('|'.join(temp))# 转换字符串以"|"进行分隔
# 打印内如如下
a_b_c
Traceback (most recent call last):
File "C:\Users\id_iot\Desktop\1.py", line 4, in <module>
print('|'.join(temp))
TypeError: sequence item 0: expected str instance, int found

lower():将字符串全部转换成小写。

upper():将字符串全部转换成大写。

buf = 'aBc'
print(buf.lower())
print(buf.upper())
# 打印内容如下
abc
ABC

lstrip([chars]):去掉字符串左侧的chars。

strip([chars]):去掉字符串两侧的chars。

rstrip([chars]):去掉字符串右侧的chars。

buf = 'aabbccaa'
print(buf.lstrip('aa'))
print(buf.strip('aa'))
print(buf.rstrip('aa'))
# 打印内如如下
bbccaa
bbcc
aabbcc

partition(sep):在字符串中搜索分隔符sep,以元组的形式返回结果、如果找不到分隔符,则返回S和两个空字符串。

buf = 'aabbccaa'
print(buf.partition('bb'))
print(buf.partition('_'))
# 打印内如如下
('aa', 'bb', 'ccaa')
('aabbccaa', '', '')

replace(old, new[, count]):替换字符串中的元素。

参数:

old:需要被替换的字符。

new:替换后的字符。

count:替换的次数。

示例:

buf = 'aabbccaa'
print(buf.replace('aa',''))
print(buf.replace('aa','',1)) # 替换1次
# 打印内如如下
123bbcc123
123bbccaa

split(sep=None, maxsplit=-1):将字符串以sep的方式进行分隔,返回分隔后的列表。

参数:

sep:分隔符。

maxsplit:分隔的次数。

示例:

buf = 'aabbccaa'
print(buf.split('b'))
print(buf.split('b',1)) # 只分隔一次
# 打印内如如下
['aa', '', 'ccaa']
['aa', 'bccaa']

startswith(prefix[, start[, end]]):如果字符串以prefix开头返回True,否则返回Flase。

参数:

prefix:开头字符。

start:从start处开始

end:到end结束

示例:

buf = 'aabbccaa'
print(buf.startswith('aabb'))
print(buf.startswith('aabb',0,2))
# 打印内如如下
True
False

swapcase():将字符串中的大写字母转换成小写,将字符串中的小写字母转换成大写。

buf = 'aaBBccDD'
print(buf.swapcase())
# 打印内容如下
AAbbCCdd

title():将字符串首字母大写,其它字符小写。

buf = 'aaBBccDD'
print(buf.title())
# 打印内如如下
Aabbccdd

zfill(width):指定字符串的宽度,如果宽度大于字符串长度,在左侧用0填充。

参数:

width:指定字符串的宽度。

示例:

buf = 'aaBBccDD'
print(buf.zfill(20))
# 打印内如如下
000000000000aaBBccDD

下一篇:python运算符:https://www.cnblogs.com/caesar-id/p/10205186.html