Python心经(2)

有关数字类型,字符串,函数

目录

有关数字类型,字符串,函数

数字

字符串

索引操作

切片操作

单个字符编码

运算符

还有一些常用的内置函数

Python输入函数

输出函数print()语法

python的函数也能给默认值

Python是个脚本语言,所以没有什么main函数,他是从上往下执行的


数字

常见的基本运算就不说了

引入math模块,里面有abs,pow,sqrt等等常用的函数

import math

num=9
print("开根号num是:",math.sqrt(num))


引入random模块包,,用来做随机数的

random(x)函数
随机生成一个 0 到 1 范围内的实数。

uniform(x, y)函数
随机生成一个 x 到 y 范围内的实数。

import random

print(random.random())

print(random.uniform(0,100))

字符串

第一节已经说了一些关于字符串的东西,这块在补充一些

索引操作

py的字符串也能像c一样用下标去访问,不同的是,py下标可以是负数访问,py里面其实是序列的概念,正数了就是从左往右去访问,负数就是从右向左访问。 注意0和-0都是第一个下标位置

序列索引支持非负数和负数,索引为非负数,从 0 开始,如下所示:

在这里插入图片描述
索引为负数由右向左计数,从 -1 开始,如图所示:

arr="hello world"
print(arr)
print(arr[0])
print(arr[1])
print(arr[-1])

切片操作

sname[start : end : step]

c同时也能访问范围字符串,第x个到第y个

如果冒号前面或者后面不写,说明访问到头或者尾巴

print(arr[1:5])

打印ello

print(arr[:5])
打印hello

print(arr[3:])
打印lo world

扩展切片

早期的Python解释器仅支持上述a[start:stop]形式的基本切片,后来加入了下面要介绍的切片形式,扩展切片的名称也流传下来,实际上不用担心,这早已是Python所支持的标准语法。

扩展切片指的是这样的切片形式:a[start:stop:step],其中step是一个非零整数,即比简单切片多了调整步长的功能,此时切片的行为可概括为:从start对应的位置出发,以step为步长索引序列,直至越过stop对应的位置,且不包括stop本身。事实上,简单切片就是step=1的扩展切片的特殊情况。需要详细解释的是step分别为正数和负数的两种情况。

step为正数

step为正数时,切片行为很容易理解,startstop截断缺省规则也与简单切片完全一致:

 >>> a
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 >>> a[0:6:2]
 [0, 2, 4]
 >>> a[::2]
 [0, 2, 4, 6, 8]
 >>> a[:-2:2]
 [0, 2, 4, 6]
 >>> a[4::2]
 [4, 6, 8]

step为负数

step为负数时,切片将其解释为从start出发以步长|step|逆序索引序列,此时,startstop截断依然遵循前述规则,但缺省发生一点变化,因为我们说过,在缺省的情况下,Python的行为是尽可能取最大区间,此时访问是逆序的,start应尽量取大,stop应尽量取小,才能保证区间最大,因此:

按照扩充索引范围的观点, start的缺省值是 无穷大(​)stop的缺省值是 无穷小(​)
 >>> a
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 >>> a[5::-1]
 [5, 4, 3, 2, 1, 0]
 >>> a[:4:-2]
 [9, 7, 5]
 >>> a[::-1]
 [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

单个字符编码

Python 使用了 ord() 函数返回单个字符的编码,chr() 函数把编码转成相应字符。如下所示:

s = 'A'
print(ord(s))  打印65
print(chr(65))  打印A

运算符

之前我们已经介绍了大部分运算符,下面再来详细看一下字符串运算符。如下表所示:

运算符描述
+连接符
*重复输出
[]通过索引获取字符串中字符
[ : ]获取字符串中的一部分
in字符串中是否包含指定字符
not in字符串中是否不包含指定字符
r/R字符串原样输出

字符串配上 *  就是重复输出

举个例子 

print("A*3->:",s*3)

输出AAA

同样的对于输出py也可以像c一样有格式化的输出

当我们需要输出的内容中含有变量时,比如:Hello xxxxxx 为变量,此时便需要一种格式化字符串的方式,Python 使用 % 格式化字符串,常用占位符如下表所示:

python 格式化输出详解(占位符:%、format、f表达式)——上篇 理论篇_python format requires a mapping多字典使用的格式_大爽歌的博客-CSDN博客

python 格式化输出详解(占位符:%、format、f表达式)——下篇 实例篇_python输出占位符_大爽歌的博客-CSDN博客

占位符描述
%s格式化字符串
%d格式化整数
%f格式化浮点
a=55
print("hello %d" % a)

输出hello 55

 我们也可以使用字符串的 format() 方法进行格式化,先看下示例:

print('{0} {1}'.format('Hello', 'Python'))
输出Hello Python

检查子串在不在字符串里面

arr="hello world"

print("is" in arr)
print("ell" in arr)

还有一些常用的内置函数

  一些简单的例子:

python 内置函数max()和min()的用法_print (max(d),min(d))_不知哪来的烦恼的博客-CSDN博客

example_arr=[2,1,10,55]
print(max(example_arr))
print(sum(example_arr))
print(len(example_arr))

str="pslocahyyz"
print(max(str))
print(min(str))
print(sorted(str))
print(list(str))
print(len(str))

sts=["absc","kssk","plpz"]
print(max(sts))
print(min(sts))
print(len(sts))

Python输入函数

Python 提供了 input() 内置函数从标准输入(键盘)读入一行文本,默认的标准输入是键盘。

input()函数等待用户从键盘输入,接收一个字符串,包括空格,都可以输入。只有回车不接受,作为结束符。格式:

input([prompt])

其中,prompt是可选的,可作为提示信息。

返回值是从键盘输入的一行文本。

用户输入的任何内容Python 都认为是一个字符串,如果需要其他类型就需要转换函数,如:

float()  字符串或者整数-->浮点型

int()   字符串或浮点型-->整数型

str()   数字-->字符串

eval()  数字-->实数

chr()    ASCII值-->ASCII字符

例如:

a = input("请输入字符串:")

b= int(input(("请输入一个整数:")))

c = float(input("请输入一个数值:"))

输出函数print()语法

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

将 objects 打印到 file 指定的文本流,以 sep 分隔并在末尾加上 end。可选项 sep, end, file 和 flush 如果存在,它们必须以关键字参数的形式给出。

参数描述

objects 要输出的对象,是复数形式,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。

sep 用来间隔多个对象,默认值是一个空格。

end 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。

file    要写入的文件对象,默认是标准输出。

flush   输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。

print()无返回值。

注意py里面定义函数是以def开头的。下面给出一些例子

#定义函数以def开头
def function(a,b):
    if a>b:
        print("a>b")
    elif a<b:
        print("a<b")
    else:
        c=a+b
        print("a+b的合是:",c)
        
a=input()
b=input()
function(a,b)

print(1)#输出:1
print("Hello World") #输出:Hello World
a= 10
b= "Hi"
print(a,b) #输出:10 Hi
print("aaa""bbb") #输出:aaabbb
print("aaa","bbb") #输出:aaa bbb
print("aaa","bbb",sep=".") # 设置间隔符,输出:aaa.bbb
print("aaa","bbb",end=" ") # aaa bbb 以空格结尾,本来是换行结尾的

function(2,2)
function(5,2)
function("nihao","nihao")

python的函数也能给默认值

定义的很多语法很像c/c++,举个例子看看


def record(_id,_name,_socre=95,_college="清华大学"):
    print("id:",_id,"\n"
          "name:",_name,"\n"
          "socre:",_socre,"\n"
          "college:",_college)

record(1,"张三",98,"西安交通大学")
record(5,"李四")
#record("熊大") # error 没有给默认值的,不能不写

#上面函数用占位符可以写成下面形式

def record1(_id,_name,_socre=95,_college="清华大学"):
    print("id=%d\nname=%s\nsocre=%d\ncollege=%s" 
          %(_id,_name,_socre,_college))
    
record1(1,"张三",98,"西安交通大学")
record1(5,"李四")    
#record(6) #error

Python是个脚本语言,所以没有什么main函数,他是从上往下执行的

python里面的全局变量和局部变量和别的语言还有些不太一样。

python的全局变量是所有函数之外定义的变量,他没法在函数内部用,就是不能对全局变量做修改,也不是不能修改,不过需要用global关键字,,全局变量能当给函数内部变量去赋值,用的是他的拷贝,他本身不能变

python的局部变量就是在函数内部或者代码块内的,外部不能用

TEMP=21

print("TEMP before=%d" %TEMP)

def fun():
    a=50  #局部变量
    print('a=',a)
    x=TEMP+60
    print('x=',x)
    a=TEMP
    print('new a=',a)
    return a+50

fun()
#print(a) #外部不能用局部变量

print(fun())
TEMP+=10
print("TEMP after=%d" %TEMP)

py里面全局变量习惯用大写表示,如果想在函数内部去修改全局变量,声明global

#py里面定义全局变量 习惯用大写去定义

TEMP=21

print("TEMP before=%d" %TEMP)

def fun():
    a=50  #局部变量
    print('a=',a)
    global TEMP #声明他是全局的
    TEMP=50
    return a+50

#print(a) #外部不能用局部变量
fun()
print("TEMP after=%d" %TEMP)

还有如果局部变量和全局变量名字一样,那么在函数内部用的是局部变量,局部变量会把全部变量隐藏掉,就跟c/c++一样局部的会把全局的隐藏

a=21

print("TEMP before=%d" %a)
def fun():
    a=50  #局部变量
    print('a=',a)
    return a+50

#print(a) #外部不能用局部变量
fun()
print(fun())
print("TEMP after=%d" %a)

大概就了解这些先,下面这个讲的比较详细 

 python的 局部变量和全局变量_python 局部变量_GeekCesto的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Pro Python 第2版,2014.12.17出版的新书 You’ve learned the basics of Python, but how do you take your skills to the next stage? Even if you know enough to be productive, there are a number of features that can take you to the next level in Python. Pro Python, Second Edition explores concepts and features normally left to experimentation, allowing you to be even more productive and creative. In addition to pure code concerns, Pro Python develops your programming techniques and approaches, which will help make you a better Python programmer. This book will improve not only your code but also your understanding and interaction with the many established Python communities. This book takes your Python knowledge and coding skills to the next level. It shows you how to write clean, innovative code that will be respected by your peers. With this book, make your code do more with introspection and meta-programming. And learn and later use the nuts and bolts of an application, tier-by-tier as a complex case study along the way. This book is for intermediate to advanced Python programmers who are looking to understand how and why Python works the way it does and how they can take their code to the next level. Table of Contents 1. Principles and Philosophy 2. Advanced Basics 3. Functions 4. Classes 5. Common Protocols 6. Object Management 7. Strings 8. Documentation 9. Testing 10. Distribution 11. Sheets: A CSV Framework 12. Style Guide for Python 13. Voting Guidelines 14. The Zen of Python 15. Docstring Conventions 16. Backward Compatibility Policy 17. Python 3000 18. Python Language Moratorium

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ryan小小锅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值