2022-11-22 Python随记

1.字符串编码

在内存中的编码是unicode的,虽然写入文件时可能是gbk或utf-8的

​"""对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符"""
print(ord("a"))    #>>97
print(ord("好"))   #>>22920
print(chr(22900))  #>>奴
print(chr(97))     #>>a


​

 2.字符串格式化str.format()

通过{ }和 : 来代替以前的 %

两种写法:1)如x = "Hello {0} {1:>10},yo get ${2:0.4f}".format("Mr.","Jack",3.2)

                       字符串.format()    --字符串里面包括索引和具体要求,后面的()里面是变量名

                  2)如print(str.format("{0:<5}",i),end="")

                        s += str.format("{0:1} * {1:1} = {2:<3}",i,j,i * j)

                          str.format()  --()里面包括索引和具体要求,用" "括起来,然后“,”,写变量名

x = "Hello {0} {1:10},you get ${2:0.4f}".format("Mr.","Jack",3.2)
"""第一个{0}表示.format函数中第0项;{1:10}表示第一项,长度为10个字符,宽度不足时空格补齐;
$原模原样打出来;{2:0.4f}表示第2项,宽度为0(即没有)“.4f”表示小数保留小数点后4位"""
print(x)     #>> Hello Mr. Jack      ,you get $3.2000
x = "Hello {0} {1:>10},yo get ${2:0.4f}".format("Mr.","Jack",3.2)
#{1:>10} 表示第1项,">"表示右对齐(宽度不足时空格补在左边)
print(x)     #Hello Mr.      Jack,you get $3.2000

{序号:宽度.精度 类型}         宽度可以是0 

类型:%f (%F):浮点数  ; %d / %i: 十进制整数  ;%s :字符串(str); %b : 二进制整数

 %o: 八进制整数  ; %x : 十六进制整数    (b、d、o、x分别为二、十、八、十六)

> : 右对齐

< : 左对齐

^ : 中对齐

>>>"{} {}".format("hello","world")    #不设置指定位置,按默认顺序,注意{}中没有空格

输出结果  hello world


print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
 
# 通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site))
 
# 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  
# "0" 是必须的,(索引)表示format()中的my_list

数字格式化

{:+.2f}  :3.1415926 --> +3.14带符号保留小数后2位

{:x<4d}  : 10 --> 10xx  左对齐,x补在右边,宽度为4,十进制整数

{:,}  :  1000000 --> 1,000,000  以逗号分隔的数字格式

{:.2%}  :  0.25 -->  25.00% 百分比格式

{:.2e}  :  1000000000  -->  1.00e+09  指数记法

如:{0:>10.4f} 表示第0项是小数,以宽度至少是10字符,右对齐(宽度不足时空格补在左边),保留小数点后4位的方式输出。

3.函数的变量

  • 一个函数内部定义(赋值)的变量,在函数外部不能使用
  • 不同函数中的同名变量不会互相影响
  • 函数中的变量和全局变量(在函数外部定义的变量)同名的情况(假设都叫x):

    1)如果没有对 x 赋值,函数中的 x 就是全局的 x

    2)如果对 x 赋值,且没有特别声明,则在函数中全局的 x 不起作用,函数中的 x 就是只在函数内部起作用的 x。

   3)函数内部可以用 global x 声明函数里的 x 就是全局变量 x

x = 4   #全局变量 x
def f0():
    print("x in f0:",x)      #这个 x 是全局的 x  >>x in f0: 4
def f1():
    x = 8                   #这个 x 是局部的 x,不会改变全局的 x
    print("x in f1:",x)    #>>x in f1: 8
def f2():
    global x                #说明本函数中的 x 是全局的 x
    print("x in f2:",x)     #>>x in f2: 4
    x = 5
    print("x in f2:",x)     #>>x in f2: 5
def f3():
    print("x in f3:",x)     #会出错。因为后面有赋值而被当作局部的x,此处没赋值就先使用了,不行
    x = 9
f0()    #>>x in f0: 4
f1()    #>>x in f1: 8
print(x)   #>>4
f2()
#>>x in f2: 4
#>>x in f2: 5
print(x)   #>>5
f3()      #调用f3会出错

4.递归

例1:n的阶层

def Factorial(n):
    if n < 2:
        return 1     #终止条件
    else:
        return n * Factorial(n-1)
n = int(input("请输入一个整数:"))
a = Factorial(n)
print("n的阶乘为:",a)

例2:求斐波那契数列第n项的函数

def Fib(n):
    if n == 1 or n == 2:
        return 1
    else:
        return Fib(n-1)+Fib(n-2)
n = int(input("请输入n:"))
a = Fib(n)
print("第n项值为:",a)

例3:上台阶问题:有n级台阶,每步可以走一级或两级,问有多少种不同

def way(n):
    if n == 1:
        return 1
    if n == 2:
        return 2
    else:
        return way(n-1) + way(n-2)
    #第一步走一级的走法(即way(n-1))+第一步走2级的走法(即way(n-2)) 经过计算得出结论
print(way(4))    #>>5

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值