目录
1.python判断字符串是否符合时间格式
import time
def check_data_format():
str1="2022/03/02 12:30:00"
flag = is_vaild_date(str1)
print(flag) #True or False
def is_vaild_date(self,str1):
try:
if ":" in str1:
time.strptime(str1,"%Y/%M/%D %H:%M:%S")
else:
time.strptime(str1,"%Y/%M/%D") #参考strptime()函数可以确定格式的写法
return True
except:
return False
补充一些简单的time函数应用:
print(time.localtime())
>>time.struct_time(tm_year=2022, tm_mon=3, tm_mday=8,
\tm_hour=14, tm_min=56, tm_sec=18, tm_wday=1, tm_yday=67, tm_isdst=0)
上记为struct_time元组
time.sleep(secs)
推迟调用线程的运行,secs指秒数
time.sleep(0.5) #推迟5s
import calendar
cal = calendar.month(2022, 3) #想要输出的年和月
print(cal)
>>
March 2022
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
2.python判断字符串小数位数
def get_digit_of_str():
str1="55.1234"
v = str1.find('.') #v=2 小数点在的位置索引
str1_1=str1[0:v] #从头取值到小数点的位数
str1_2=str1[v + 1:] #从小数点的后一位(v+1)取到末尾
print(str1_1) #55
print(str1_2) #1234
print(len(str1_1) #2
print(len(str1_2) #4
3.Python中为何要有self
Self,这里指的是,实例Instance本身。
“自己”是和“其他”而说的,而此处的其他指的是,类Class,和其他变量,比如局部变量和全局变量等。
此处的self,是个对象(Object),是当前类的实例。
4.Python的进制转换
不同类型的进制转换的原理:先转换为十进制,然后再用相关的函数进行进制转换操作。
方法一: n = input()
-input() 函数接受一个标准输入数据,返回为 string 类型。
从该列转换→到该行 →2进制 →8进制 →10进制 →16进制 2进制 - oct(int(n,2)) int(n,2) hex(int(n,2)) 8进制 bin(int(n,8)) - int(n,8) hex(int(n,8)) 10进制 bin(n) oct(n) - hex(n) 16进制 bin(int(n,16)) oct(int(n,16)) int(n,8) - -表格内函数返回值带有进制前缀:0b(2)、0o(8)、0x(16)
如果要去掉前缀,可以对结果进行字符串切片操作:bin(int(n,16))[2:],将得到的结果从第三个字符开始取结果。
方法二:
使用format()函数进行进制转换。此结果不带前缀。
n=input() #将8进制数转化为二进制 print("{:b}".format(int(n,8))) #将16进制数转化为十进制 print("{:o}".format(int(n,16))) #将8进制数转化为二进制 print("{:x}".format(int(n,8)))
5.python的print()函数
print()的源代码:
print(*objects, sep=' ', end='\n', file=sys.stdout)
end 默认以换行符'\n'来结尾。
①python的print()函数支持格式化输出,和C语言的printf()功能类似。
a = "learning"
str = "The length of (%s) is %d." %(a,len(a)) #使用%号
print(str)
>>>The length of (learning) is 8.
题外话,你还记得C语言的printf()函数格式化输出怎么写吗?
#include stdio.h
int a=88,b=89;
printf("%d %d\n",a,b); //手动输入结束符,这里为\n;
/* 不使用'%' 直接使用',' */
②print输出默认是自动换行(由上面的源函数可知,end默认值为换行符\n),当不想输出换行时,将源函数的默认值换掉就可以了:
for i in range (1,10):
print(i,end='')
>>123456789
那么我们以此类推,如果想用‘:’来分割输出内容时:
for i in range (1,10):
print(i,end=':')
>>1:2:3:4:5:6:7:8:9:
③Python3.6新增了一种print f-字符串格式化
print(f'a{a}'),则 ’ ' 内中出现了{ }括起来的表达式,则{xxx}会被传过来的实际数据替换;如果没有f,则直接输出字符串。
a=123
print(f'a,{a}') #{a}中的a被实际值代替,‘a,’按照字符串格式输出
>>a,123
print('a,{a}') #就是正常的字符串输出
>>a,{a}
print(f'value = {a}')
>>value = 123
d1=30
m2=2
y3={22,"i"}
a4="abd0"
z6=[7,45] 从这个例子可以看出来-f使用方便的地方
print('print string:\n', 字典,列表,字符串,都可以同时输出。
f'first:{d1},{m2}\n',
f'second:{y3},{a4},{z6}\n')
>>print string:
>> first:30,2
>> second:{'i', 22},abd0,[7, 45]