python学习记录1-时间/进制/print/小数位

目录

1.python判断字符串是否符合时间格式

2.python判断字符串小数位数

3.Python中为何要有self

4.Python的进制转换

5.python的print()函数 

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]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
456”,程序应将其转换为二进制小数形式并输出。 要完成十进制小数到二进制小数的转换,可以采用以下的方法: 1. 将十进制小数的整数部分和小数部分分别转换为二进制整数和二进制小数。 2. 对于二进制整数部分,可以使用除2取余法,将十进制整数部分不断除以2并记录余数,最后将余数倒序排列得到二进制整数部分。 3. 对于二进制小数部分,可以使用乘2取整法,将十进制小数部分不断乘以2并记录整数部分,直到乘积为0或者达到一定的精度,最后将整数部分按顺序排列得到二进制小数部分。 4. 将二进制整数部分和二进制小数部分拼接起来,得到完整的二进制小数表示。 下面是一个Python程序示例,可以用于将任意输入的十进制小数转换为二进制小数: ``` def decimal_to_binary(decimal): # 分离整数部分和小数部分 integer = int(decimal) fraction = abs(decimal - integer) # 转换整数部分为二进制 binary_integer = "" while integer > 0: binary_integer += str(integer % 2) integer //= 2 binary_integer = binary_integer[::-1] # 转换小数部分为二进制 binary_fraction = "" while fraction > 0: if len(binary_fraction) >= 10: # 最多转换10位小数 break fraction *= 2 if fraction >= 1: binary_fraction += "1" fraction -= 1 else: binary_fraction += "0" # 拼接二进制整数和二进制小数 if binary_fraction: return binary_integer + "." + binary_fraction else: return binary_integer # 测试代码 print(decimal_to_binary(123.456)) # 输出:1111011.0111010001 print(decimal_to_binary(0.25)) # 输出:0.01 print(decimal_to_binary(-8)) # 输出:-1000 ``` 该程序使用Python的整除运算符“//”和取模运算符“%”,以及字符串的切片操作“[::-1]”来实现十进制整数到二进制整数的转换。同时,程序还使用了循环和条件语句来实现对小数部分的乘2取整操作,以及达到一定精度的退出条件。最后,如果十进制小数是负数,则程序将其转换为二进制后添加一个负号“-”作为结果的前缀。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值