python学习中的特殊问题

1. python中无char字符类型

2. python中"//"才是整除,c++整除用"/"

3. 96.54%10的值不会默认保留2位小数

print(98.12 / 10)
print(98.12 % 10)
print("%.2f" % (98.12 % 10))
print(98.12 // 10)

输出:

9.812000000000001
8.120000000000005
8.12
9.0

4. 2个变量赋值和交换可以直接写在同一行

#已知a,b都是变量,写出将a,b两个变量中的值互换的代码
a,b=1,2
a,b = b,a
print("a,b两个值互换",a,b)

输出:a,b两个值互换 2 1

5. 指定输出格式方式不同

#c语言直接 print("%d %s",score,"A")
#而python需要
print("%d %s" % (score,"A"))
print("%d" % score,"%s" % "A")

score=100
print("分数:%d 等级:%s" % (score,"A"))
print("分数:%d" % score,"等级:%s" % "A")

输出:

分数:100 等级:A
分数:100 等级:A

6. 位运算:python中的按位取反

~9 = -10
首先,把十进制数转化成二进制数,即 1001。
第二步,由于二进制数在内存中以补码的形式存储,所以我们需要把第一步得到的二进制数转成补码,要成补码,先把原码转化成反码。即 01001,(正数原反补一样)。第一个0为补充上去的符号位,最后得到补码01001。
第三步,按位进行取反,把第二步得到的补码进行按位取反(即10110)。
第四步,把第三步的操作转为补码(重点:二进制数在内存中以补码的形式存储!!),但是由于按位取反后变为负数,所以我们需要用负数的原反补规则,先每一位取反变成(11001),然后反码末尾+1得到补码(即11010);注意:负数符号位不参与变换,为1。
第五步,把第四步得到的补码转成十进制数就是结果,为 -10。

print(bin(~0b00110101))

输出:-0b110110

7. 选中内容,Tab键,缩进4个空格,Shift+Tab则返回

8. \t 制表符的使用

for m in range(1,10):
    for n in range(1,9):
        print("%2d × %d = %d" % (m,n,m*n),end=' ')
    print()
print()

输出:python学习中的特殊问题_第1张图片

加每个print的end中加了制表符之后:

# 使用制表符
for m in range(1,10):
    for n in range(1,9):
        print("%2d × %d = %d" % (m,n,m*n),end='\t')
    print()
print()

输出:python学习中的特殊问题_第2张图片

9. str.isdigit() 判断字符串是否只包含数字字符

score = input("请输入你的成绩:")
if score.isdigit():   #判断字符串是否只包含数字字符,判定输入的成绩是否是正整数
    score =int(score)  #把字符串转换成字符型
    if score >= 0 and score<=100:
        if score >= 80:
            print("奖金100元")
            print("假期10天")
        else:
            print("奖金 -100元")
            print("假期 -10天")
    else:
        print("请输入正确的成绩")
else:
    print("你输入的有错误,不是一个正整数类型")
print("结束")

输入:90a, 输出:你输入的有错误,不是一个正整数类型

输入:92.4,输出:你输入的有错误,不是一个正整数类型

输入:90,   输出:奖金100元
                                假期10天

输入:60,   输出:奖金 -100元
                                假期 -10天

你可能感兴趣的:(python,python)