大嘎好,半吊子程序员从网线的这一端向您问好。
过去的还是会过去,就像时间,就像流水,就像python 2.7
终于还是要向python3切换
网上搜索了一下,还是用《笨办法学python3》这个文档开始吧。地址在:https://www.bookstack.cn/read/LearnPython3TheHardWay/spilt.1.learn-py3.md
————以下是书里的摘录部分的分割线———-
程序员总是自诩为数学天才,其实事实并非如此。如果他们是数学天才,他们就会去研究数学,而不是去写那些 bug 连篇的网站框架以便能开上豪车。
打印: print(“xxxxxxxxx”)
print(“Hens”, 25 + 30 / 6)
格式化字符串,只需要在“”前加上f,表示 format
somear = "world"
print( f"Hello, {somevar}")
.format()也可以格式化
joke_evaluation = “Isn’t that joke so funny?! {}”
print(joke_evaluation.format(hilarious))
print(“How old are you?”, end=’ ‘)
age = input()
# 我们在每一个打印行末尾放一个 end=' '
,是为了告诉 print 不要另起一行。
y = input("Name?")
提示信息在()内
age = input("How old are you? ")
命令行参数
from sys import argv
script, filename = argv
argv
和 input()
之间的区别是什么? 区别取决于用户在哪被要求输入,如果是在命令行,就用 argv。如果你想让它们在程序已经运行的情况下用键盘输入,那就用 input()
读取文件
txt_again = open(file_again)
print(txt_again.read())
txt = open(filename)
会返回文件的内容吗? 不会。它其实是创建了一个叫做“文件对象”(file object)的东西
exists
。它会基于一个字符串里面的变量文件名来判断,如果一个文件存在,它就会返回 True
,不存在就会返回 False
,
from os.path import exists
exists(to_file)
- close – 关闭文件,就像编辑器中的 “文件->另存为”一样。
- read – 读取文件内容。你可以把读取结果赋给一个变量。
- readline – 只读取文本文件的一行内容。
- truncate – 清空文件。清空的时候要当心。
- write(‘stuff’) – 给文件写入一些“东西”。
- seek(0) – 把读/写的位置移到文件最开头。
用 32 个比特来编码一个 Unicode 字符 , 一个 32 位比特的数字意味着我们可以存储 4,294,967,295 个字符(2^32), 这对任何一种人类语言,甚至外星语言来说,都够用了
next_lang = line.strip()
raw_bytes = next_lang.encode(encoding, errors=errors)
cooked_string = raw_bytes.decode(encoding, errors=errors)
DBES”这个辅助记忆词吗?“Decode Bytes, Encode Strings”,解码字节==》字符串,编码字符串==》字节( 有字节要字符串,解码字节,有字符串要字节,编码字符串 )。
你需要做的就是记住如果你有原始字节,那你必须用 .decode()
来获取字符串。
关于while语句
- 保守使用 while-loop,通常用 for-loop 更好一些。
- 检查一下你的 while 语句,确保布尔测试最终会在某个点结果为 False。
- 当遇到问题的时候,把你的 while-loop 开头和结尾的测试变量打印出来,看看它们在做什么。在这个练习中,你要通过以下三个检查来学习 while-loop:
if语句的编程习惯,
if 语句的规则:
- 每一个“if 语句”必须包含一个 else。
- 如果这个 else 永远都不应该被执行到,因为它本身没有任何意义,那你必须在 else 语句后面使用一个叫做 die 的函数,让它打印出错误信息并且死给你看,就像我们上节课做的那样,按照这个思路你可以找到很多错误。
- “if 语句”的嵌套不要超过 2 层,最好尽量保持只有 1 层。
- 把“if 语句”当做段落来对待,其中的每一个
if, elif, else
就跟段落中的句子一样。在每句前后留一个空行以作区分。 - 你的布尔测试应该很简单,如果它们很复杂的话,你需要将它们的运算事先放到一个变量里,并且为变量取一个好名字。
如果你遵循上面的规则,你就会写出比大多数程序员都好的代码来。
python的数据类型

// | 地板除法(商向下取整) | 2 // 4 = 0 |
继承的大多数用法都可以用组合(composition)来简化或替换。并且无论如何都要避免多重继承
以下三个关键词需要加强一下
with-as 语句
lambda 创建一个短的匿名函数
yield
—–再结合总结一下—————————
1:print() 变成了函数
2: 默认使用UTF-8编码,不需要 u”xxxx” 这样子了
3:增加一个地板除运算符 // , 如 9//4 = 2
4:异常处理 , 只有继承 BaseException 的对象才可以被抛出
try:
raise TypeError("xxx")
excpt TypeError as err:
print(err)
5:不等于运算符只能使用 !=
6:增加bytes类型
b=b'中国'
type(b)
s = b.decode()
b2 = s.encode()
其他只有等实际中遭遇到再详细了解,目前感觉python2升到python3并不是太大的变更
应该问题不大的