本章节涵盖内容如上述目录所属,博文的起拟时间为: 2022.4.13 日。 完成时间即发布时间。与其相对应时期发布的还有 第一行代码 第二章的读后分享。请到个人主页中进行查看。
文章内容来自 python从实践到入门 的读后分享,此博客会涵盖书中摘录内容和个人理解的分享,请广大朋友们给予点评和支持,兔C会给大家分享出更多优质的知识内容。感谢。
今天Java部分的输出内容还没有总结完,python 第二章的知识点相对少一点,所以刷完赶紧整理发出来。剩下的精力就能放在 Java 上了。 长话短说,我们赶紧进入主题:
在聊变量的知识点之前,我们先补充一点基础知识: python的文件后缀为 .py,也就是只有后缀为.py的文件才会被python的解释器运行时读取到。
1. 变量
在讲解基础概念之前,我们先写个小demo,进行练习。然后在进行解释和叙述。
message = "HelloWorld"
print(message)
然后我们用黄色的茶胡子来运行一下,看看输出结果: 我的工具是不是有点low… 看python的代码并没有使用 分号进行结尾。写python代码的时候千万不要当成java的写。
看这段代码,在命令行中成功输出了 HelloWorld。 上述内容就是变量的一个简单存储和输出使用。
使用print 函数打印变量内容的时候 千万不要打错了变量名。不然会和java一样报编译错误的。这是我想跟大家强调的第二点。
1.1 变量的命名规范
其实这一点和java大径相同。虽然没有硬性说必须要用小驼峰命名规则,但是作者也强调推荐用小驼峰进行命名。
跟Java相同,必须是字母开头,可由:下划线 数字 组成。不能有空格,空格用下划线表示。 不同的是 不能用美元符号 $
1.2 变量重新赋值后输出的结果是之前的赋值内容,还是最新的?
我把代码和效果图 一起粘出来了…
以上内容就是关于书中介绍到的变量的知识内容,下面我留给大家两个书中的小练习题,大家可以使用上述知识进行练习:
- 简单消息:将一条消息存储到变量当中,再将其打印出来
- 多条简单消息:将一条消息存储到变量中,将其打印出来,再将变量的值修改为一条消息,然后将其打印出来
2. 字符串
2.1 字符串基本概念及三个基本函数
在python中被引号括起来的都是字符串,这里的引号可以是单引号,也可以是双引号。 与Java 不同的是 不需要声明类型。只是引号括起来,就视为字符串数据类型
"HelloWorld!"
'Hello兔C'
想输出这两个字符串,可以直接使用 print打印,也可以找个变量接收,然后在print函数中打印变量。就可以输出其字符串的内容。
而且在python当中也提供了很多对字符串进行设置的方法。 下面来介绍 可对字符串进行操作的方法
name = "tu ccc"
print(name.title())
我们来看一下运行效果: 发现首字母本来存储在变量当中的也是小写的,当经调用title()函数之后首字母变为了大写。是的 这也是 title 函数的作用:将首字母更改成大写
在来说明一下 name.title()这个语法的意义: name后面的. 表示:让python 对变量执行方法title()指定的操作。 每个方法的后面都要跟上一个()括号,这是因为方法通常需要额外的信息来完成工作,这种信息是在括号内提供的。函数title() 不需要额外的信息,因此它后面的括号是空的。
说完了title() 函数 我们在来介绍另外两个函数。
name = "tu ccc"
print(name.upper())
print(name.lower())
输出效果: 当变量调用 upper() 函数时,其输出结果为:字母全部大写。 当变量调用 lower() 函数时, 其输出结果为:字母全部小写。
致此我们认识了三个可操作字符串内容的三个方法。
对于以上的三个方法,我们不可以忘记 lower() 方法的使用,因为日后关于存储用户账户信息时,如果用户录入了信息,我们不确定是否为准确的大小写内容,我们可以先使用 lower() 函数,先将其转换为小写进行存储,等使用时,在转换为正确的大小写内容即可。
2.2 +号拼接的使用
下面我们来玩一下字符串的拼接。
我们刚刚说到用户信息的存储时,会用到 lower() 函数,但是有时候用户信息存储时,姓式和名字需要单独用变量进行存储。是的,我们在这个时候就需要用到两个变量来进行存储了,那需要使用完整的用户信息时,我们怎么办? 我们可以采用字符串拼接的方法进行处理。 如:代码示例
first_name = "tu"
last_name ="ccc"
full_name = first_name + "" + last_name
print(full_name)
我们来看一下运行结果: 我们称这种使用 + 号 拼凑在一起的方法为拼接。
不仅如此,我们还可以继续为起拼接提示语句: (这里我就不放代码了,我直接把代码的编辑和运行结果放在图片上展示出来。另外说一下,我们之前提到只要是引号包裹起来的就是字符串,我这次将双引号改成单引号进行测试)
//偷偷告诉大家,我这次的博客是在网吧的机器上写的。出门在外,自己的电脑不在身边,没有现成的环境怎么办?哈哈哈 交给大家一手: 菜鸟教程里用在线编译工具
2.3 制表符和换行符的使用
这里介绍 \t 制表符 和 \n换行的使用
print("\tHello,python,\n\tMy name is java!")
其运行结果为:
2.4 删除多余的空白
这一小节,我们来介绍一下删除空白的两种方法: 在字符串中如果有多余的空白,如果是验证用户登陆信息的操作,需要校验后进行登陆,如过此时含有空白,校验很容易出现不通过的问题。
Look:code示例
name = ' python '
print(name.rstrip())
我们先来看一下字符串后面的空白有没有删除成功 这里我们清楚的看到,后面的内容是没有空白的,但是开头依然存在空白。 下面我们在使用lstrip() 函数 删除前面的空白
name = ' python '
name.rstrip()
print(name.lstrip())
我们来看一下运行效果:
发现前面的空白也成功去除了,但是后面的空白又出现了!
这个问题是因为我们删除掉空白之后,还要把调用函数完成后的操作,重新赋值存储回变量当中 我们来操作看一下空白还是否存在 Look ! 成功了吧
在这里提示大家,在使用字符串数据类型时,“” ‘’ 不管是单引号和双引号要合理使用,虽然在双引号中嵌套单引号也可以成功输出显示,但是不要在单引号中在嵌套单引号了。
下面是动手练习题,分享给大家,运用上述知识来练习一下吧
2.5 动手试一试
1.个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消息应非常简单,如“Hello Eric, would you like to learn some Python today?”。
name = "Eric"
print("Hello,"+name+",would you like to learn some Python today?")
2.调整名字的大小写: 将一个人名存储到一个变量中,再以小写、大写和首字母大写的方式显示这个人名。
name ="tu ccc"
print(name.lower())
print(name.upper())
print(name.title())
3.名言: 找一句你钦佩的名人说的名言,将这个名人的姓名和他的名言打印出来。输出应类似于下面这样(包括引号): Albert Einstein once said, “A person who never made a mistake never tried anything new.”
name = "tu ccc"
message=":I love your code"
print(name+message)
name ="tu ccc"
message =':"I love your code"'
print(name+message)
4.剔除人名中的空白: 存储一个人名,并在其开头和末尾都包含一些空白字符。务必至少使用字符组合"\t" 和"\n" 各一次。 打印这个人名,以显示其开头和末尾的空白。然后,分别使用剔除函数lstrip() 、rstrip() 和strip() 对人名进行处理,并将结果打印出来。
name ="\ttu\nccc\t"
name = name.lstrip()
name = name.rstrip()
print(name)
这里使用的是 lstrip() 函数去除开头的空白,然后使用rstrip() 函数去除了后面的空白。但是作者给出的题目还有一个函数我们没有介绍到过。
strip() 这个函数中是可以传入参数的。它的作用是剔除你指定的字符,例如你传入t,就会将字符中的字母t剔除。但如果你不传入参数,它就默认将字符串中前后的空白进行剔除。
name ="\ttu\nccc\t"
print(name.strip())
print(name.strip("\tt"))
在这里在给大家介绍一个函数,len() 可以给这个参数传入我们的变量,它会返回该字符串类型变量的长度。
3. 数字
下面我们介绍数字这一知识点
在编程中,经常使用数字来记录游戏得分,表示可视化数据,存储Web应用信息等,python 根据数字的用法以不同的方式处理他们
3.1 整数的四则运算
>>> 2 + 3
num1 = 2 + 3
num2 = 3 - 2
num3 = 2 * 3
num4 = 3 / 2
3.2 >>> 是语法么?四则运算不用变量接收怎么写?
符号 >>> 是python在最初设计时用于自动化脚本shell的编写,书中的 >>> 可以理解成是在命令行中进行编写的,在命令行中编写的话,输出之后就会有 >>> 的符号,所以我们上面写的是正确的。
而且你也可以直接用print() 函数输出 2 + 3 它也会输出计算之后的数值
3.3 python 的乘方运算
在python中使用两个**号可以表示乘方
num1 = 2**2
num2 = 3**3
num3 = 4**4
3.4 浮点数
说完了整数,我们来玩一下浮点数。 在python中,带有小数点的数字都为浮点数
demo: 看图片的计算结果,我给大家画了一个问号。 这个问题是因为: 很多语言都有这个问题,例如Java中使用Math类或者BigDecimal类解决。而python的我现在也不晓得。随着后面学习就会晓得了。 这个问题称为精度丢失,出现这个问题的原因:…我有点emmm了,以前看过这个问题,现在说不清楚了。大概是计算机展现在我们眼前的是十进制,而他自己计算时转为了自己偏爱的二进制,然后在计算时丢了精度。。我说的很粗框。大概内容看:添加链接描述:对于精度丢失问题的回答
请宽容我在这篇文章上不扣清楚这个问题,我的时间很短暂。
3.5 关于在输出语句中拼接整数类型,不显示数值问题
python 和 java 还是有些不同的,在3.5这个小节上就能体现出来,比如我在字符串中拼接数字,我说祝你22岁代码没有BUG。
int age = 22;
System.out.println("I wish you a "+age+"-year-old code without a bug.");
经运行通过后,就会将数据中的变量值正确输出出来 我们下面在看python
age = 22;
print("I wish you a "+age+"-year-old code without a bug.")
o !! 编译之后会报错了。可能是书上的知识版本比较老,书上的编译是通过的。 总之就是:python与java不同,输出整数类型的变量时,python只认为你想输出的是该变量的数据类型,所以你需要使用str()函数,它才会帮你将该变量的值输出出来。
下面是正确的实例
age = 22;
print("I wish you a "+str(age)+"-year-old code without a bug.")
3.6 整数与浮点数的除法问题
在编程语言中都存在类型转换的概念。 例如整数和浮点数进行除法时,我们知道整数的占用字节数小于浮点数。故而也出现了两者的大小。 此时,如果想取得正确的结果值,就需要将其进行类型转换。类型转换分为:强制转换,自动转换。 例如上述问题,就可以采用强制类型转换,给其指定将要转换的类型。
Look:code,不明白没关系,看一下代码
num = 3 / 2
print(num)
num = 3.0 / 2
print(num)
3.7 小结类型转换概念
类型转换有两种,自动转换和强制转换。 两个相同类型的数值进行计算,不会发生转换问题,如果两个计算数值类型不同,结果取其较大者为自己的数据类型,这就是自动转换。
强制转换,是你明确去指定 结果为什么类型。需要自己明确定义。这个一般用于什么场景呢?打比方,比如我现在的程序中是用两个int进行计算,但是会出现一种情况,就是我的值可能会超过int类型的取值范围,如果出现这种情况,就会发生数据溢出,会造成取值错误的问题。在说的详细一点,int类型的取值范围是-2147483648 ~ 2147483647,也就是正21万亿到负的21万亿,站位是32位,第一位是符号位,超过其余位的变化,就会在符号位上改变,正数会变负数,负数会变正数。解决这种问题就需要自己去明确指定转换类型了,可以进行向上转型,明确指定一个大于他的类型,告诉程序你计算完了把结果给我转换为这个类型,这就是强制转换。 而进行强制类型转换后,即便结果值的位数超过了int类型的位数,也不会造成数据溢出,因为此时的结果类型已经不是int类型了。我们强制转换了吖
3.8 动手试一试
- 编写四个表达式,分别为:加法,减法,乘法,除法。但是结果都为8.使用print函数来打印结果
print(4+4)
print(9-1)
print(2*4)
print(16/2)
- 将你最喜欢的数字存储在一个变量中,再使用这个变量创建一条消息,指出你最喜欢的数字,然后将这条消息打印出来
num = 9
print("你最喜欢的数字是:"+str(num))
4. 注释
这个没什么好说的了,注释的话就用 # 这个符号。至于其作用嘛:被#这个符号标记的内容会被编译器忽视掉。不会被执行
5. Python 之禅
python之禅是早期开发者倡导避繁就简的代码编写原则:背景故事大概是这样的::
背景故事: 编程语言 Perl曾在互联网领域长期占据着统治地位,早期的大多数交互式网站使用的都是Perl脚本,彼时,“解决问题的办法有多个” 被 Perl 社区奉为座右铭,这种理念一度深受大家的喜爱,因为这种语言固有的灵活性使得大多数问题都有很多不同的解决之道。在开发项目期间,这种灵活性是可以接受的,但大家最终意识到,过于强调灵活性会导致大型项目难以维护:要通过研究代码搞清楚当时解决复杂问题的人是怎么想的,既困难又麻烦,还会耗费大量时间。 经验丰富的程序员倡导尽可能避繁就简。python社区的理念都包含在 Tim Peters撰写的 python 之禅中,而查看该原则的方法很简单,在你自己的编译器中 录入代码: import this,然后运行就会输出出python之禅的相关内容。
import this
下述内容为 import this 返回的 python 之禅 相关信息:
The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren’t special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you’re Dutch. Now is better than never. Although never is often better than right now. If the implementation is hard to explain, it’s a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea – let’s do more of those!
小伙伴们可以自己粘到翻译软件中查看。
本期内容,自此阐述完毕。望大家多多给予点评,指出文章缺陷。多谢多谢
|