第二章 第一个python程序

本文详细介绍了Python编程的基础,包括命令行模式与交互模式、输入输出函数print和input的使用、变量的定义与规则,以及数据类型的转换。讲解了变量命名规则、数据类型分类,并通过实例演示了数据类型转换的过程。此外,还探讨了字符串的转义字符、字符串格式化以及字符编码问题,如ASCII、UTF-8等。文章最后以邮箱地址合法性验证的案例,引入了控制流if语句的使用,强调了变量、运算符和数据类型在编程中的重要性。
摘要由CSDN通过智能技术生成

1 命令行模式和 Python 交互模式
 命令行模式看到类似cmd 窗口  是在 Windows 提供的命令行模式:在命令行模式下,也可以执行 python hello.py 运行一个 .py 文件。 交互模式如:Python 交互式环境会把每一行 Python 代码的结果自动打印出来,但是,直接运行 Python 代码却不会练习   2 输入和输出函数     输出函数 printprint() 方法用于打印输出,最常见的一个函数。      语法以下是 print() 方法的语法:print(objects, sep=’ ‘, end=’\n’, file=sys.stdout)参数objects – 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。sep – 用来间隔多个对象,默认值是一个空格。end – 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。file – 要写入的文件对象。返回值无。实例以下展示了使用 print 函数的实例:Python3 下测试>>>print(1)  1  >>> print(“Hello World”)  Hello World   >>> a = 1>>> b = ‘runoob’>>> print(a,b)1 runoob >>> print(“aaa”“bbb”)aaabbb>>> print(“aaa”,“bbb”)aaa bbb>>>  >>> print(“www”,“baidu”,“com”,sep=".")  # 设置间隔符www.baidu.com    输入函数input Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。注意:在 Python3.x 中 raw_input() 和 input() 进行了整合,去除了 raw_input( ),仅保留了input( )函数,其接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型。函数语法input([prompt])参数说明:prompt: 提示信息实例input() 需要输入 python 表达式>>>a = input(“input:”)input:123                  # 输入整数>>> type(a)<class ‘str’>              # 字符串>>> a = input(“input:”)    input:runoob              # 正确,字符串表达式>>> type(a)<class ‘str’>             # 字符串注意: input函数是阻塞式的   必须等用户输入信息之后,再enter则释放     3 变量  定义: 会变的程度  作用:保存数据  变量的分类: 全局变量  局部变量  类变量    实例变量    常量  (后面讲解)  用法 :    变量名= 值  (变量的数据类型根据值来决定)  变量命名规则请务必牢记下述有关变量的规则。  1 变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打 头,例如,可将变量命名为message_1,但不能将其命名为1_message。  2 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message 可行,但变量名greeting message会引发错误。  3 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,  4 变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length 比length_of_persons_name好。  5 慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。要创建良好的变量名,需要经过一定的实践,在程序复杂而有趣时尤其如此。随着你编写的程序越来越多,并开始阅读别人编写的代码,将越来越善于创建有意义的变量名练习4 数据类型  4.1 数据类型分类Python3 中有六个标准的数据类型: ● Number(数字  int、float、bool、complex(复数)) ● String(字符串) ● List(列表) ● Tuple(元组) ● Set(集合) ● Dictionary(字典)Python3 的六个标准数据类型中: ● 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组); ● 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。# 常见的数据类型# type(变量)  函数  查看变量的数据类型#========字符串=str ============name=“name"print(type(name))#========整数=int ============number=1print(type(number))#========浮点数=float ============price=1.22print(type(price))#========布尔=bool ====# 值只能是True  真  False假  falg=Trueprint(type(falg))#空值NoneTypefalg2=Noneprint(type(falg2))#字节bytesx = b’ABC’print(type(x)) Tuple(元组)List(列表)、Dictionary(字典)、Set(集合)比较重要,后面做详见讲解练习 4.2  数据类型转换     有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。函数 描述int(x [,base]) 将x转换为一个整数float(x) 将x转换到一个浮点数complex(real [,imag]) 创建一个复数str(x) 将对象 x 转换为字符串repr(x) 将对象 x 转换为表达式字符串eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象tuple(s) 将序列 s 转换为一个元组list(s) 将序列 s 转换为一个列表set(s) 转换为可变集合dict(d) 创建一个字典。d 必须是一个序列 (key,value)元组。frozenset(s) 转换为不可变集合chr(x) 将一个整数转换为一个字符ord(x) 将一个字符转换为它的整数值hex(x) 将一个整数转换为一个十六进制字符串oct(x) 将一个整数转换为一个八进制字符串先看 int  str  float 直接的转换,其他后面章节说明#数据类型的转换# 1 int()函数能够#      (1)把符合数学格式的数字型字符串转换成整数#      (2)把浮点数转换成整数,但是只是简单的取整,而非四舍五入。# 2 float()函数将整数和字符串转换成浮点数# 3 str()函数将数字转换成字符# int  -> str  ,floatnumber = 2print(“number转换之前:”,type(number))#  number = str(number) #转换 int -> strnumber = float(number) #转换 int -> floatprint(“number转换之后:”,type(number))# str ->  int  , floatname = “22” print(“name转换之前:”,type(name))#name = int(name) #转换 str -> intname = float(name) #转换 str -> floatprint(“name转换之后:”,type(name))# float ->  int  , strprice = 4.5print(“price转换之前:”,type(price))#price= int(price)#转换 float -> int price= str(price)#转换 float -> strprint(“price转换之后:”,type(price))4.3 字符串常见的用法  Python转义字符在需要在字符中使用特殊字符时,python用反斜杠()转义字符。如下表:转义字符 描述(在行尾时) 续行符\ 反斜杠符号’ 单引号” 双引号\a 响铃\b 退格(Backspace)\e 转义\000 空\n 换行\v 纵向制表符\t 横向制表符\r 回车\f 换页\oyy 八进制数,yy代表的字符,例如:\o12代表换行\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行\other 其它的字符以普通格式输出Python字符串运算符下表实例变量a值为字符串 “Hello”,b变量值为 “Python”:操作符 描述 实例+ 字符串连接 a + b 输出结果: HelloPython 重复输出字符串 a2 输出结果:HelloHello[] 通过索引获取字符串中字符 a[1] 输出结果 e[ : ] 截取字符串中的一部分,遵循左闭右开原则,str[0,2] 是不包含第 3 个字符的。 a[1:4] 输出结果 ellin 成员运算符 - 如果字符串中包含给定的字符返回 True ‘H’ in a 输出结果 Truenot in 成员运算符 - 如果字符串中不包含给定的字符返回 True ‘M’ not in a 输出结果 Truer/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 print( r’\n’ ) print( R’\n’ )Python字符串格式化Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。实例(Python 3.0+)#!/usr/bin/python3 print (“我叫 %s 今年 %d 岁!” % (‘小明’, 10))以上实例输出结果:我叫 小明 今年 10 岁!python字符串格式化符号:    符   号 描述      %c  格式化字符及其ASCII码      %s  格式化字符串      %d  格式化整数      %u  格式化无符号整型      %o  格式化无符号八进制数      %x  格式化无符号十六进制数      %X  格式化无符号十六进制数(大写)      %f  格式化浮点数字,可指定小数点后的精度      %e  用科学计数法格式化浮点数      %E  作用同%e,用科学计数法格式化浮点数      %g  %f和%e的简写      %G  %f 和 %E 的简写      %p  用十六进制数格式化变量的地址格式化操作符辅助指令:符号 功能 定义宽度或者小数点精度- 用做左对齐+ 在正数前面显示加号( + ) 在正数前面显示空格# 在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’)0 显示的数字前面填充’0’而不是默认的空格% ‘%%‘输出一个单一的’%’(var) 映射变量(字典参数)m.n. m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。Python三引号python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。实例如下实例(Python 3.0+)#!/usr/bin/python3 para_str = “”“这是一个多行字符串的实例多行字符串可以使用制表符TAB ( \t )。也可以使用换行符 [ \n ]。”"“print (para_str)4.4 字符编码问题    字符串比较特殊的是还有一个编码问题 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理ASCII 编码只有 127 个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号 但是不可以保存中文 中国制定了 GB2312 编码,用来把中文编进去。这样一来每个国家都有自己的编码,结果就是,在多语言混合的文本中,显示出来会有乱码因此,Unicode 应运而生。Unicode 把所有语言都统一到一套编码里, Utf-8Unicode 编码转化为“可变长编码”的 UTF-8 编码。UTF-8 编码把一个 Unicode 字符根据不同的数字大小编码成 1-6 个字节,常用的英文字母被编码成 1 个字节,汉字通常是 3 个字节,只有很生僻的字符才会被编码成 4-6 个字节。如果你要传输的文本包含大量英文字符,用 UTF-8 编码就能节省空间Python中提供了ord() 函数获取字符的整数表示,chr() 函数把编码转换为对应的字符如:ord(‘A’)65>>> ord(‘中’)20013>>> chr(66)‘B’>>> chr(25991)‘文’4.5 字符和字节直接转换字符转换成字节一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str 变为以字节为单位的 bytes 。Python 对 bytes 类型的数据用带 b 前缀的单引号或双引号表示如:     x = b’ABC’要注意区分 ‘ABC’ 和 b’ABC’ ,前者是 str ,后者虽然内容显示得和前者一样,但 bytes 的每个字符都只占用一个字节 以 Unicode 表示的 str 通过 encode() 方法可以编码为指定的 bytes ,例如:>>> ‘ABC’.encode(‘ascii’)b’ABC’>>> ‘中文’.encode(‘utf-8’)b’\xe4\xb8\xad\xe6\x96\x87’>>> ‘中文’.encode(‘ascii’)Traceback (most recent call last):File “”, line 1, in UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-1:ordinal not in range(128)纯英文的 str 可以用 ASCII 编码为 bytes ,内容是一样的,含有中文的 str可以用 UTF-8 编码为 bytes 。含有中文的 str 无法用 ASCII 编码,因为中文编码的范围超过了 ASCII 编码的范围,Python 会报错 字节转换成字符 bytes 变为 str ,就需要用 decode() 方法:>>> b’ABC’.decode(‘ascii’)‘ABC’>>> b’\xe4\xb8\xad\xe6\x96\x87’.decode(‘utf-8’)'中文4.6 字符串中常见的函数和方法Python 的字符串常用内建函数如下:序号 方法及描述1 capitalize() 将字符串的第一个字符转换为大写2 center(width, fillchar) 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。3 count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数4 bytes.decode(encoding=“utf-8”, errors=“strict”) Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。5 encode(encoding=‘UTF-8’,errors=‘strict’) 以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’6 endswith(suffix, beg=0, end=len(string)) 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.7 expandtabs(tabsize=8) 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。8 find(str, beg=0 end=len(string)) 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-19 index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在字符串中会报一个异常.10 isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False11 isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False12 isdigit() 如果字符串只包含数字则返回 True 否则返回 False…13 islower() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False14 isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 False15 isspace() 如果字符串中只包含空白,则返回 True,否则返回 False.16 istitle() 如果字符串是标题化的(见 title())则返回 True,否则返回 False17 isupper() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False18 join(seq) 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串19 len(string) 返回字符串长度20 ljust(width[, fillchar]) 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。21 lower() 转换字符串中所有大写字符为小写.22 lstrip() 截掉字符串左边的空格或指定字符。23 maketrans() 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。24 max(str) 返回字符串 str 中最大的字母。25 min(str) 返回字符串 str 中最小的字母。26 replace(old, new [, max]) 把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。27 rfind(str, beg=0,end=len(string)) 类似于 find()函数,不过是从右边开始查找.28 rindex( str, beg=0, end=len(string)) 类似于 index(),不过是从右边开始.29 rjust(width,[, fillchar]) 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串30 rstrip() 删除字符串字符串末尾的空格.31 split(str=”", num=string.count(str)) num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串32 splitlines([keepends]) 按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。33 startswith(substr, beg=0,end=len(string)) 检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。34 strip([chars]) 在字符串上执行 lstrip()和 rstrip()35 swapcase() 将字符串中大写转换为小写,小写转换为大写36 title() 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())37 translate(table, deletechars="") 根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中38 upper() 转换字符串中的小写字母为大写39 zfill (width) 返回长度为 width 的字符串,原字符串右对齐,前面填充040 isdecimal() 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。整体案例  验证邮箱地址是否合法  1 必须有@和.  2 @必须在.之前关联知识点1 变量  数据类型  输入输出函数2 字符串常见的函数3 控制流   4.7 if 控制流    语法:如果 “condition_1” 为 True 将执行 “statement_block_1” 块语句如果 “condition_1” 为False,将判断 “condition_2"如果"condition_2” 为 True 将执行 “statement_block_2” 块语句如果 “condition_2” 为False,将执行"statement_block_3"块语句Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else。注意:1、每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。3、在Python中没有switch – case语句。案例 #if 控制流#缩进代表的代码块    = 代表赋值运算符   比较运算符\number1 = 4 number2 = 3# if number2: # print(“number2") # print("number2”)# else: # print(“end”) #  if  # if number2: # print("number2") # if  else# if number2: # print("number2")# else: # print(“number!=2”) # if elif … else# if number2: # print("number2")# elif number3: # print("number3")# elif number4: # print("number4")# else: # print(“number!=2”) # if elif … # if number2: # print("number2")# elif number3: # print("number3")# elif number4: # print("number4") # 嵌套if结构if number13: if number24: print(“number13 ,number24”) print(“a”) else: print(“number13 ,number2!=4")else: print(“number1!=3”) 验证邮箱是否合法的代码# 验证邮箱地址是否合法  # 1 必须有@和.  # 2 @必须在.之前    email = input(“请输入邮箱地址:”)number1 = email.find("@")number2 = email.find(".")if number1-1: print(“没有@不合格!”)elif number2==-1: print(“没有.不合格!”)elif number1>number2: print(”@必须在.之前")else: print(“邮箱地址合法”,email)  从验证邮箱是否合法案例中学到了,控制流if,变量 ,运算符,数据类型等知识点,但是运算符在python中有哪些?控制流有哪些?基本语法有哪些?这些知识点,我们在后面的章节中详解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值