• python学习中的特殊问题


    1. python中无char字符类型

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

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

    1. print(98.12 / 10)
    2. print(98.12 % 10)
    3. print("%.2f" % (98.12 % 10))
    4. print(98.12 // 10)

    输出:

    9.812000000000001
    8.120000000000005
    8.12
    9.0

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

    1. #已知a,b都是变量,写出将a,b两个变量中的值互换的代码
    2. a,b=1,2
    3. a,b = b,a
    4. 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")

    1. score=100
    2. print("分数:%d 等级:%s" % (score,"A"))
    3. 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 制表符的使用

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

    输出:

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

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

    输出:

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

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

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

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

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

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

    10.只要执行return,函数就结束

    return语句用于退出函数,并向调用方返回一个表达式,不带参数值的return语句返回None。

    1. def find(lst,obj,start=0):
    2. if start < 0 or start >= len(lst):
    3. return -1
    4. for i in range(start,len(lst)):
    5. if lst[i] == obj:
    6. return i # 只要执行retur函数就结束
    7. return -1
    8. nums = [1,2,3,4,5,6,7,8,5,4,3,2]
    9. print(find(nums,4))

    只找出第一个4的位置

    输出:3

    11. *args 和 **kwargs

    *args是用来发送一个非键值对的可变数量的参数列表给一个函数。当传入的参数个数未知,且不需要知道参数名称时使用。

    **kwargs 允许将不定长度的键值对作为参数传递给一个函数。如果想要在一个函数里处理带名字的参数时使用。

    1. def func1(*args):
    2. print(type(args))
    3. for v in args:
    4. name = v[0]
    5. sex = v[1]
    6. age = v[2]
    7. print("name is %s , sex id %s , age is %s" % (name,sex,age))
    8. print()
    9. func1(["张三","男",30],["李四","女",28],["王五","男",24])
    10. def func2(**kwargs):
    11. print(type(kwargs))
    12. for k,v in kwargs.items():
    13. print(k,v)
    14. print()
    15. func2(name="张无忌",age=36)

    输出:


    name is 张三 , sex id 男 , age is 30
    name is 李四 , sex id 女 , age is 28
    name is 王五 , sex id 男 , age is 24


    name 张无忌
    age 36

    12. lambda表达式

    1. def func(x,y,z):
    2. return x + y + z
    3. print(func(1,2,3))
    4. f = lambda x,y,z:x+y+z
    5. print(f(1,2,3))

    输出:

    6

    6

    13.ASCII码和字符串的转换

    33-47          ! " # $ % & ' ( ) * + , - . /
    48-57          数字0-9
    123-126      { | } ~
    97-122        小写字母a-z
    91-96          : ; < = > ? @
    65-90          大写字母A-Z
    58-64          [ \ ] ^ _ `

    ASCII码转字符:chr(int)    0-127
    字符转ASCII码:ord(str)    单个可见ASCII字符串,不能中文和非ASCII码里的字符

    1. # 编写函数contain_all_letter(words)检查一个字符串words是否包含所有英文字母(不区分大小写)
    2. def contain_all_letter(words):
    3. for i in range(97,123):
    4. if words.find(chr(i)) == -1 and words.find(chr(i-32)) == -1:
    5. return "不包含所有英文字母"
    6. else:
    7. return "包含所有英文字母"
    8. print("abcd",contain_all_letter("abcd"))
    9. print("ABCdefghijklmnopqrstuvwxyz",contain_all_letter("ABCdefghijklmnopqrstuvwxyz"))

    输出:

    abcd 不包含所有英文字母
    ABCdefghijklmnopqrstuvwxyz 包含所有英文字母

  • 相关阅读:
    麒麟v10操作系统 安装docker
    有想去做的事,早早去做
    【qsort学习及改造冒泡排序能排序任何数】
    LED电子显示屏的异步图文控制技术
    【数据结构】克鲁斯卡尔(Kruskal)算法 —PK— 普里姆(Prim)算法
    【Vue】基础系列(三三)指令语法-事件及其修饰符,动态样式,v-model的用法,数据持久化存在本地localStorage
    学生护眼台灯哪个牌子最好?2022双十二4款儿童护眼写字灯推荐
    CPP-Templates-2nd--第十一章 泛型库
    LLaMA 3 源码解读-大语言模型5
    记录一次Java调试cannot find local variable ‘envelope‘错误
  • 原文地址:https://blog.csdn.net/zhyue77yuyi/article/details/131141832