Python学习笔记——一些函数

本文对应头歌上的Python练习:https://www.educoder.net/paths/pn7qklv9

基础知识1:

input( )函数

input()函数从控制台获得用户输入,无论用户在控制台输入什么内容,input()函数都以字符串类型返回结果。

  1. name=input()//将用户输入的字符串存储到name变量中
    name=input()//将用户输入的字符串存储到name变量中

输入:张三,则name变量中存储的值为“张三”。

在获得用户输入之前,input()函数可以包含一些提示性文字,使用方法如下:

  1. <变量>=input(<提示性文字>)

例如:

name=input("请输入一个人的名字:")
country=input("请输入一个国家的名字:")

print( )函数

print()函数输出纯字符信息时,可以直接将待输出内容传递给print()函数,如:

print("祖国,你好!")

输出:祖国,你好!

当输出变量值时,需要采用格式化输出方式,通过format()方法将待输出变量整理成期望输出的格式,如:

name=input("请输入一个人的名字:")
country=input("请输入一个国家的名字:")
print("{}来自于{}".format(name,country))

输入: "张三 中国"   

输出:张三来自于中国

输入

使用input函数可以获得用户输入,在控制台窗口上,输入的一行的字符串,使用变量 = input()的形式将其赋值给一个变量:

str1 = input()
print("输入的是%s" % str1)

如果输入hello然后回车,则输出:输入的是hello

还可以在input()的括号内,加入一些提示信息:

str1=input("请输入:")
print("输入的是%s" % str1)

运行之后,会先显示请输入:,输入数据hello之后回车,则会得到输出:输入的是hello,控制台上显示的全部内容为:

请输入:hello 输入的是hello

 输出

print的函数的基本使用,在之前的关卡中,已经出现过多次,将要输出的内容放在print()的括号内,就可以输出:

print("hello world")

得到的结果是:hello world

print函数可以同时输出多个内容,只需要将它一起放在print的括号内,并用逗号隔开:

print("hello","world")

得到的结果:hello world

值得注意的是,同时输出的多个内容之间,会有空格隔开

类似于 C/C++ 的printf,Python 的print也能实现格式化输出,方法是使用%操作符,它会将左边的字符串当做格式字符串,将右边的参数代入格式字符串:

print("100 + 200 = %d" % 300) #左边的%d被替换成右边的300
print("A的小写是%s" % "a") #左边的%s被替换成右边的a

得到的结果是:

100 + 200 = 300 A的小写是a

如果要带入多个参数,则需要用()包裹代入的多个参数,参数与参数之间用逗号隔开参数的顺序应该对应格式字符串中的顺序

  1. print("%d + %d = %d" % (100,200,300))
  2. print("%s %s" % ("world","hello"))

得到的结果是:

100 + 200 = 300 world hello

实例:请变成一个简单的两个整数的四则运算:

c语言编程实现:

#include<stdio.h>
int main()
{
	int a, b;
	printf("请输入整数a的值:"); 
	scanf("%d", &a);
	printf("请输入整数b的值:"); 
	scanf("%d", &b);

	printf("%d + %d = %d\n", a, b, a + b);  //参数和双引号之间是逗号分隔;
		printf("%d - %d = %d\n", a, b, a - b);
			printf("%d * %d = %d\n", a, b, a * b);
				printf("%d + %d = %f", a, b, (float)a / b); //隐式类型转换
	return 0;
}

Python编程 实现:

a = int(input("请输入整数a的值:"))
b = int(input("请输入整数b的值:"))
print("%d + %d = %d" %(a,b,a+b))  #双引号 和参数之间没有逗号分隔
print("%d - %d = %d" %(a,b,a-b))
print("%d * %d = %d" %(a,b,a*b))
print("%d + %d = %f" %(a,b,a/b))

对比两种语言,可以知道c语言的printf()函数和python的print函数有相似的地方,但是也有不同的地方,两者的双引号和参数之间的分隔不同。

python对于四则运算的表达还可以这么写(以a + b 举例): print(a,"+",b,"=",a+b)

格式字符串中,不同占位符的含义:

%s: 作为字符串 

%d: 作为有符号十进制整数

 %u: 作为无符号十进制整数 

%o: 作为无符号八进制整数 

%x: 作为无符号十六进制整数,a~f采用小写形式 

%X: 作为无符号十六进制整数,A~F采用大写形式 

%f: 作为浮点数 

%e,%E: 作为浮点数,使用科学计数法

 %g,%G: 作为浮点数,使用最低有效数位

更多用法可以在网络上自行搜索。

注意: print函数输出数据后会换行,如果不想换行,需要指定end=""

  1. print("hello" , end="")
  2. print("world" , end="")

得到的结果:helloworld

 {}.format():()里面不放引号代表是变量,否则是字符串

基本语法是通过 {} 和 : 来代替以前的 %{}表示format要内要显示的内容的位置,而:相当于%;

实例:

>>>"{} {}".format("hello", "world")   #不设置指定位置,按默认顺序

 'hello world' 

>>> "{0} {1}".format("hello", "world")   #设置指定位置 

'hello world' 

>>> "{1} {0} {1}".format("hello", "world")  #设置指定位置 

'world hello world'

数字格式化

>>> print("{:.2f}".format(3.1415926))
输出:3.14

Python字符串

上图字符串Hello world长度为11(注意,空格也是一个字符),正向递增以最左侧字符H序号为0,向右侧依次递增,最右侧字符d序号为11-1=10;反向递减序号以最右侧字符d序号为-1,向左依次递减,最左侧字符H序号为-11。这两种索引字符的方法可以同时使用。

类比c语言的数组Python 字符串也提供区间访问方式,采用[N:M]格式表示字符串中从NM(不包含M)的子字符串,其中,NM为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。如果表示中N或者M索引缺失,则表示字符串把开始或结束索引值设为默认值

示例如下:

>>>name="Python语言程序设计"
>>>name[0]
'P'

>>>print(name[0],name[7],name[-1])
P 言 计
>>>print(name[2:-4])
thon语言

>>>print(name[:6])  #缺少左值,所以是从开始到第6个
Python

>>>print(name[6:])  #缺少右值,所以是从第6个到结束
语言程序设计
>>>print(name[:])
Python语言程序设计

字符串转换

input函数接收的是用户输入的字符串,此时还不能作为整数或者小数进行数学运算,需要使用函数将字符串转换成想要的类型。

  • 转换成整数,使用int()函数:
    num1 = int(str)
  • 转换成小数,使用float()函数:
    f1 = float(str)
  • str = input()
    num1 = int(str)
    f1 = float(str)
    print("整数%d,小数%f" % (num1,f1))

    如果输入10,得到的输出是:整数10,小数10.000000

缩进

Python 与 C/C++、Java 这些 C 类语言不同,Python 使用缩进来表示代码块,缩进的空格数量可以由个人习惯决定,但同一个代码块的缩进空格数必须相同。

if True:
    print("true")
    print("true")
else:
 print("false")
 print("false");

上面程序的 if 部分和 else 部分缩进不相同,但是在各自的代码块内缩进是相同的,所以是正确的程序。

if True:
   print("true")
  print("true")

这个程序的 if 部分缩进不相同,所以是错误的程序。

多行语句

Python 的代码一般是一行一条语句,语句之后的分号 ; 可加可不加。但如果要在一行中写多条语句,则需要用分号 ; 隔开每条语句。

print("hello")
print("world");

print("hello");print("world")

以上三行(四条语句)都是正确的。

标识符

标识符就是程序中,使用的各种名称,例如:变量名、常量名、类名等等。 在 Python 中,对标识符格式的要求与 C/C++、Java 等差不多:

  • 第一个字符必须是字母表中的字母或下划线 _ ;
  • 标识符的其他的部分,由字母、数字和下划线组成;
  • 标识符对大小写敏感;
  • 标识符不能与保留字相同。

比如:

num1 = 1
float1 = 0.5
true = True #这个 true 虽然字面上的意思与值“True”相同,但 python 对大小写敏感,所以也是正确的
str1 = "hello"

这些都是正确的标识符。

而:

1value = 1 #开头不能是数字
value0.1 = 0.1 #标识符中间只能是数字,字母,下划线
if = True #与保留字if重名

都是不正确的标识符。

保留字

保留字即关键字,是 Python 语言中内部使用的单词,代表一定语义。例如:and、class、if、else 等。保留字不能作为标识符,用在变量名、常量名、类名等地方。 Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:

import keyword
print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

注释是对程序代码的说明,一般是给程序员理解代码使用,不作为程序一部分。

Python 中单行注释以 # 开头

#这是一个注释1
print("python") #这是一个注释2
#print("python2")

运行得到的结果是: python

多行注释可以使用多个#,也可以用一对'''(三个单引号)或者"""(三个双引号)包裹要注释的内容:

#使用多个#
#作注释

'''
用三个单引号
作注释
'''

"""
用三个双引号
作注释
"""

基础知识2:——基本数据类型

字符串处理

Python 中使用+来合并两个字符串,这种合并字符串的方法叫做拼接。其基本语法如下:

  1. result_string = source_string1 + source_string2

其中:

  • source_string1:待合并的第一个字符串;

  • source_string2:待合并的第二个字符串;

  • result_string:合并后的字符串。

注意:如果需要,在两个字符串之间可以增加相应的空格,具体见下面的例子。例如,将姓氏和名字拼接成全名:

# coding=utf-8

# 将姓氏和名字分别保存在两个变量中
first_name = 'Zhang'
last_name = 'san'

# 将姓氏和名字拼接,将结果存储在full_name变量中
full_name = first_name + " " + last_name
print(full_name)

字符转换

Python 标准库提供了一系列关于字符串处理的函数。小目标是让大家学习并掌握 Python 常用字符串方法中的len()、upper()、lower()strip()函数的用法,并完成相应字符串处理任务。

注:upper()、lower()、strip()均是后置函数,用法:string.xxx(),其中xxx是对应函数

字符串长度获取

Python 提供了len()函数来计算,并返回字符串的长度,即字符串中单个元素的个数。其基本语法如下:

  1. length = len(target_string)

其中:

  • target_string: 目标字符串变量;

  • length: 保存字符串长度的变量;

  • len: 获取字符串长度的语法关键词。

下面给出了具体的使用示例:

# coding=utf-8

# 创建一个字符串变量,获取其长度并打印出来
color = 'It is red'
length = len(color)
print (length)

# 直接在len函数中引入字符串内容获得其长度,然后打印出来
print(len('This is a circle!'))

输出结果:

  1. 9
  2. 17

注意: 从输出结果可以看到,空格也占一个字符元素的位置。

大小写转换

Python 提供了upper()lower()方法,来对字符串进行大小写转换。其中,upper()会将字符串中的所有字符都转换为大写,lower()则将所有字符转换为小写。除此之外,Python 还贴心的提供title()方法,将字符串所有单词的首字母变成大写,而其他字母依然小写。各个方法的具体语法如下:

  1. # 将源字符串转换为大写并存入upper_string变量
  2. upper_string = source_string.upper()
  3. # 将源字符串转换为小写并存入lower_string变量
  4. lower_string = source_string.lower()
  5. # 将源字符串每个词首字母转换为大写并存入title_string变量
  6. title_string = source_string.title()

其中,source_string为待处理的源字符串。具体使用示例如下:

# coding=utf-8

# 创建一个字符串say_hello
say_hello = 'Dear my Daughter'

# 使用upper()方法对say_hello字符串进行处理
upper_say_hello = say_hello.upper()

# 使用lower()方法对say_hello字符串进行处理
lower_say_hello = say_hello.lower()

# 使用title()方法对say_hello字符串进行处理
title_say_hello = say_hello.title()

# 打印输出四个字符串
print (say_hello+"\n")
print (upper_say_hello+"\n")
print (lower_say_hello+"\n")
print (title_say_hello+"\n")

输出结果:

  1. Dear my Daughter
  2. DEAR MY DAUGHTER
  3. dear my daughter
  4. Dear My Daughter

注意: 由上述打印结果可以看出,上述方法的调用,并不会对原始的 say_hello字符串产生影响,转换后的字符串会存入新的变量中。

去除字符串首尾空格

Python 提供了strip()方法,可以去除字符串两侧(不包含内部)全部的空格。使用该方法,也可以通过指定参数,去除两侧指定的特定字符。

注意:在指定参数时,如果参数是多个字符,则该方法会将多个字符逐个去比对,进行删除(区分大小写),直到首尾两侧没有匹配的字符为止。但是,该方法对字符串中间的字符没有影响。

基本语法如下:

  1. strip_string1 = source_string.strip()
  2. string_strip2 = source_string.strip(target_char)

其中:

  • source_string:待处理的源字符串;

  • strip_string1strip_string2:处理后的字符串;

  • target_char:需要从源字符串首尾去除的特定字符。

具体使用示例如下:

# coding = utf-8

# 创建一个字符串hello_world
hello_world = ' **The world ** is big!* '

# 利用strip()方法处理hello_world字符串
blank_hello_world = hello_world.strip()
char_hello_world = hello_world.strip('TH *')

# 打印输出转换后的字符串
print(blank_hello_world)
print(char_hello_world)

输出结果:

  1. **The world ** is big!*
  2. he world ** is big!

输出结果分析:

  • 从第一行打印结果可以看到,strip()方法去除了源字符串首尾的所有空格,但是并没有去除字符串中间的空格

  • 从第二行打印结构可以看出,strip()方法将源字符串首尾所有空格、* 以及字符T去掉了,而源字符串中头部的h因为是小写并没有去除

字符串查找与替换

学习并掌握 Python 中常用的字符串方法,包括字符串查找(  find()  )、字符串切分(  split()  )、字符串替换(  replace()  )等。

用法:string.xxx( )  ,xxx是对应函数

字符串查找

Python 提供了内置的字符串查找方法find(),利用该方法可以在一个较长的字符串中查找子字符串。如果该字符串中,有一个或者多个子字符串,则该方法返回第一个子串所在位置的最左端索引,若没有找到符合条件的子串,则返回-1find()方法的基本使用语法如下:

  1. source_string.find(sub_string)

其中:

  • source_string:源字符串;

  • sub_string:待查的目标子字符串;

  • find:字符串查找方法的语法关键字。

例如,在一个字符串中,查找两个单词的位置:

# coding=utf-8

# 创建一个字符串
source_string = 'The past is gone and static'

# 查看"past"在source_string字符串中的位置
print(source_string.find('past'))

# 查看"love"在source_string字符串中的位置
print(source_string.find('love'))

输出结果:

  1. 4
  2. -1

字符串替换

Python 提供了replace()方法,用以替换给定字符串中的子串。其基本使用语法如下:

  1. source_string.replace(old_string, new_string)

其中:

  • source_string:待处理的源字符串;

  • old_string:被替换的旧字符串;

  • new_string:替换的新字符串;

  • replace:字符串替换方法的语法关键词。

例如,在如下字符串中,用small子串替换big子串:

# coding = utf-8

# 创建一个字符串circle
source_string = 'The world is big'

# 利用replace()方法用子串"small"代替子串"big"
print(source_string.replace('big','small'))

输出结果:

  1. The world is small

字符串分割

Python 提供了split()方法实现字符串分割。该方法根据提供的分隔符,将一个字符串分割为字符列表,如果不提供分隔符,则程序会默认把空格(制表、换行等)作为分隔符。其基本使用语法如下:

  1. source_string.split(separator)

其中:

  • source_string:待处理的源字符串;

  • separator:分隔符;

  • split:字符串分割方法的关键词。

例如,用+/还有空格作为分隔符,分割字符串:

# coding = utf-8

# 待处理字符串source_string
source_string = '1+2+3+4+5'

# 利用split()方法,按照`+`和`/`对source_string字符串进行分割
print(source_string.split('+'))
print(source_string.split('/'))

输出结果:

  1. ['1', '2', '3', '4', '5']
  2. ['1+2+3+4+5']

猜你喜欢

转载自blog.csdn.net/qq_29992017/article/details/122690666