Crossin的编程教室

我的学习

阿星冲冲冲

共学习 59
连续学习 1
累计获得 793 点经验值

48
10/13 +6 学习了 [课程9-3] 期中项目 - 统计成绩
05/24 +7 提交了 [实例20] 提取英文单词
03/29 +1 面向对象编程的一个重要特点就是数据封装。在上面的Student类中,每个实例就拥有各自的name和score这些数据。我们可以通过函数来访问这些数据,比如打印一个学生的成绩: >>> def print_score(std): ... print('%s: %s' % (std.name, std.score)) ... >>> print_score(bart) Bart Simpson: 59 但是,既然Student实例本身就拥有这些数据,要访问这些数据,就没有必要从外面的函数去访问,可以直接在Student类的内部定义访问数据的函数,这样,就把“数据”给封装起来了。这些封装数据的函数是和Student类本身是关联起来的,我们称之为类的方法: class Student(object): def __init__(self, name, score): self.name = name self.score = score def print_score(self): print('%s: %s' % (self.name, self.score)) 要定义一个方法,除了第一个参数是self外,其他和普通函数一样。要调用一个方法,只需要在实例变量上直接调用,除了self不用传递,其他参数正常传入: >>> bart.print_score() Bart Simpson: 59 这样一来,我们从外部看Student类,就只需要知道,创建实例需要给出name和score,而如何打印,都是在Student类的内部定义的,这些数据和逻辑被“封装”起来了,调用很容易,但却不用知道内部实现的细节。 封装的另一个好处是可以给Student类增加新的方法,比如get_grade: class Student(object): ... def get_grade(self): if self.score >= 90: return 'A' elif self.score >= 60: return 'B' else:
03/27 +3 面向对象 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。 创建实例是通过类名+()实现的:>>> bart = Student() 可以自由地给一个实例变量绑定属性,比如,给实例bart绑定一个name属性:>>> bart.name = 'Bart Simpson' 注意到__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。 有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实例变量。和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,并且,调用时,不用传递该参数。除此之外,类的方法和普通函数没有什么区别,所以,你仍然可以用默认参数、可变参数、关键字参数和命名关键字参数。
03/26 +9 提交了 [实例5] 输出 1 到 100
03/25 +6 提交了 [实例3] BMI 指数测试
03/25 +3 Git教程 Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统。 集中式vs分布式 集中式版本控制系统最大的毛病就是必须联网才能工作。首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。 创建版本库 版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。 所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录: $ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit
03/24 +5 学习了 [课程8-11] 编程实例 - 屏蔽词替换
03/24 +6 提交了 [实例2] 各种变量
03/24 +8 提交了 [实例1] 更多的输出
03/23 廖雪峰-文件读写 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符: >>> f = open('/Users/michael/test.txt', 'r')-标示符'r'表示读 Python引入了with语句来自动帮我们调用close()方法:-这和前面的try ... finally是一样的,但是代码更佳简洁,并且不必调用f.close()方法。 with open('/path/to/file', 'r') as f: print(f.read()) 遇到有些编码不规范的文件,你可能会遇到UnicodeDecodeError,因为在文本文件中可能夹杂了一些非法编码的字符。遇到这种情况,open()函数还接收一个errors参数,表示如果遇到编码错误后如何处理。最简单的方式是直接忽略:>>> f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore') 写文件和读文件是一样的,唯一区别是调用open()函数时,传入标识符'w'或者'wb'表示写文本文件或写二进制文件。 还是用with语句来得保险: with open('/Users/michael/test.txt', 'w') as f: f.write('Hello, world!')
03/23 +2 廖雪峰-python基础 整数 Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。对于很大的数,例如10000000000,很难数清楚0的个数。Python允许在数字中间以_分隔,因此,写成10_000_000_000和10000000000是完全一样的。十六进制数也可以写成0xa1b2_c3d4。 转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\。如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义。如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容。
03/22 +1 C语言是可以用来编写操作系统的贴近硬件的语言,所以,C语言适合开发那些追求运行速度、充分发挥硬件性能的程序。而Python是用来编写应用程序的高级编程语言。Python的缺点: 1、第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。 2、第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。
03/20 +5 学习了 [课程10-6] 视频 - 正则表达式2
03/20 +5 学习了 [课程10-5] 视频 - 正则表达式
03/20 +5 学习了 [课程10-3] 视频 - headers
03/20 +5 学习了 [课程10-8] 参考阅读 - 网络请求、正则、多线程
03/20 +7 学习了 [课程11-3] 视频 - 对象的方法和属性
03/19 +5 学习了 [课程10-2] 视频 - requests 模块
03/19 json一种类似字典格式的字符串,常用来作为网络文本数据的传输格式,可以很方便地和dict格式互转
03/19 +1 requests库安装和导入 第一步:cmd打开命令行,使用如下命令安装requests库 pip install requests 如果提示你pip版本需要更新,按照提示的指令输入即可更新。 第二步:cmd使用如下命令,验证requests库安装完成。 pip list 第三步:在pycharm中,点击file——settings——project——python interpreter——点击+号——搜索requests——install package! 第四步:在你写的.py文件中,使用如下命令导入即可。 import requests
03/17 简单举几个正则表达式的例子: \d 匹配数字 \s 匹配空白符 . 匹配除换行符以外的任意字符 [] (中括号里加上字符)匹配这其中的任意一个字符 + 表示至少一个字符,? 表示0或1个字符,*表示任意数量连续字符(包括0个),{n}表示n个字符,{n,m} 表示n-m个字符 ^ 匹配整个字符串的开始,$ 匹配整个字符串的结束 \w - 匹配字母或数字或下划线或汉字(我试验下了,发现python 3.x版本可以匹配汉字,但2.x版本不可以) \s - 匹配任意的空白符 ^ - 匹配字符串的开始 $ - 匹配字符串的结束 \W - 匹配任意不是字母,数字,下划线,汉字的字符 \D - 匹配任意非数字的字符 \B - 匹配不是单词开头或结束的位置
03/17 +8 学习了 [课程10-9] 小测验 - 网络
03/16 +5 学习了 [课程10-7] 代码练习 - 正则表达式
03/16 +8 学习了 [课程10-4] 图文 - 正则表达式
03/15 +5 学习了 [课程11-9] 小测验 - 面向对象
03/15 +5 学习了 [课程11-8] 参考阅读 - 面向对象
03/15 +7 学习了 [课程11-7] 代码练习 - 继承
03/14 +5 学习了 [课程11-2] 视频 - 类和对象
03/14 +5 学习了 [课程11-6] 视频 - 继承
03/14 +7 学习了 [课程11-5] 图文 - 继承
03/13 +5 学习了 [课程10-1] 图文 - 网络请求
03/13 +5 学习了 [课程11-4] 代码练习 - 类和对象
03/13 +6 学习了 [课程11-1] 图文 - 面向对象
03/10 +6 学习了 [课程9-2] 参考阅读 - 通过 Git 提交代码
02/26 +5 学习了 [课程7-19] 实例解析 - 三人斗地主手牌生成
02/26 +6 学习了 [课程7-18] 编程实例 - 三人斗地主手牌生成
12/16 +7 学习了 [课程7-17] 实例解析 - 生成优惠券号码
12/15 +6 学习了 [课程7-16] 编程实例 - 生成优惠券号码
11/16 +1 Git的官网(http://git-scm.com)提供了Windows下Git客户端的安装包。也可以去msysGit项目的页面上下载: http://msysgit.github.com/ 安装好之后,你会得到一个Git的命令行工具Git-Bash和一个图形界面工具Git-GUI。在后面的教程里,会主要以命令行下Git的使用为主。掌握基本的命令之后,使用图形界面也就没什么问题了。 另外,GitHub提供了一个叫做GitHub For Windows的工具。这个工具也能实现Git的功能,并且提供了一个更便于管理GitHub上项目的图形化工具。也可以选择安装这个,地址是:
11/12 +1 对于列表中的每个元素,也都有唯一的序号与之对应,我们可以用函数index 来查看列表中某个元素的序号。arr.index(元素)=元素序号
11/04 +6 学习了 [课程9-1] 如何 debug
09/15 要注意分清错误和异常的区别,切勿滥用异常处理。一般来说只有读写外部文件失败、网络请求失败、数据库连接失败、获取的数据异常等已知的非程序原因且不可控的问题才用异常处理,且要提供合理的处理方式。而不是用来作为解决代码错误的办法,不然这就变成把头埋进沙子里的鸵鸟了。
09/15 +1 Pycharm 在你写代码时就会给出高亮或者波浪线的提示,把鼠标移上去还可以看到错误的提示。否则这些错误是很难被发现的
09/12 +1 f = open('game.txt', 'w') f.write(result) f.close()
09/05 +7 学习了 [课程8-10] 小测验 - 文件读写
09/04 +6 学习了 [课程8-9] 参考阅读 - 读文件、写文件、异常处理
09/01 +1 1.python 3的除法运算中,一个"/"的除法,结果为浮点数。如果需要得到结果的整数部分(不是对结果四舍五入),要用"//",即两个斜杠。而"%"代表对结果取余数。 2.因为0是不能作为除数的,所以这里还需要加上判断
08/24 +5 学习了 [课程8-8] 图文 - 字符编码
08/24 +5 学习了 [课程8-6] 视频 - 异常处理
08/24 +1 UTF-8 编码兼顾了 Unicode 的完整性与网络传输的效率,现已成为网络传输的通用编码规则。但可惜的是,由于各种历史遗留问题,并不是所有的文件和系统都调整为这种编码,比如一些中文网站和 Windows 的不少中文版本默认使用的就是 GBK 编码。这就导致了我们开头说的问题。 比如:一个下载好的中文文件,其中的文字是以 GBK 编码保存的,那么“你好”保存的就是 '\xc4\xe3\xba\xc3',而 UTF-8 的“你好”则是 '\xe4\xbd\xa0\xe5\xa5\xbd'。因为两个规则不一样,所以如果你的程序以默认的 UTF-8 编码规则去解码 GBK 的文件,自然就乱码甚至报错了。
08/18 +7 学习了 [课程8-7] 代码练习 - 异常处理
08/17 +5 学习了 [课程8-5] 图文 - 异常处理
08/17 如果我们有这样一个需求,希望不管程序是否报错,都要在最后执行同一段代码呢?比如文件读写,不管成功与否,都要在程序结束前把文件关闭。 这可以通过 finally 实现: try: f = open('python.txt') # 正常执行的代码 except: # 异常处理 finally: f.close()
08/17 在 python 中,可以使用 try...except 语句来处理异常。 做法是,把可能引发异常的语句放在 try-块 中,把处理异常的语句放在 except-块 中。 刚才那段代码可改写为: try: f = open('non-exist.txt') print ('File opened!') f.close() except: print ('File not exists.') print ('Done')
08/17 +1 在 python 中,可以使用 try...except 语句来处理异常。
08/13 +5 学习了 [课程8-4] 视频 - 写文件
08/13 +5 学习了 [课程8-3] 图文 - 写文件
08/13 +2 f = open('data.txt') # 打开文件 f.read() # 读取文件 f.close() # 关闭文件 与读取文件时不同,写入文件时 open 函数必须加上代表文件“打开模式”的参数: f = open('python.txt', 'w') 文件在可写入的模式下打开后,就可以向文件写入信息了。 文件写入有两种方法: write f.write('corossin的编程教室') write 仅能接收一个字符串对象,换行可以在字符串中加入换行符 \n。 writelines f.writelines(['crossin\n', '编程\n', '教室']) writelines 与 readlines 相应,接收一个列表,依次写入列表中元素。 正如 readlines 会读取文件每一行末位的换行符,writelines 接收列表中的元素如果想要换行,也必须在元素末尾加上 \n .
08/12 +5 学习了 [课程8-2] 视频 - 读文件
08/12 +5 学习了 [课程8-1] 图文 - 读文件
08/12 +2 f.seek(offset, from_what) 使文件指针从 from_what 处移动 offset 字节: from_what=0 表示自文件起始处开始移动; from_what=1 表示自当前文件指针位置开始移动; from_what=2 表示自文件末尾开始移动; 其默认值为 0,所以 f.seek(0) 就是回到文件开头。
08/11 解决办法有三个: 在字符串引号前加 r,使反斜杠不转义 >>> file_address = r'd:\test\temporary\python.txt' >>> print(file_address) d:\test\temporary\python.txt 用双反斜杠 \ 对转义符本身进行转义 >>> file_address = 'd:\\test\\temporary\\python.txt' >>> print(file_address) d:\test\temporary\python.txt 用斜杠符 / 分割,在 python 中同样有效 >>> file_address = 'd:/test/temporary/python.txt' >>> print(file_address) d:/test/temporary/python.txt
08/11 当我们知道文件的地址与当前程序运行地址的相对关系时,我们可以使用更为简单的“相对路径”: 相对路径以程序当前运行目录为参考基准,如果文件与程序在同一个目录内,可以直接使用文件名进行调用: python.txt 如果文件在程序当前目录下的子文件夹内,可以省略掉共同的路径部分: another_dir\crossin.txt 如果文件在当前目录的上级目录内,可以用 ..\ 表示上一级目录,例如: ..\aaa.txt
08/11 +1 但python默认是以只读模式打开文件。如果想要写入内容,在打开文件的时候需要指定打开模式为写入: f = open('output.txt', 'w')
08/08 +5 学习了 [课程7-15] 编程实例 - 统计单词出现次数
08/08 +5 学习了 [课程7-14] 小测验 - 序列
08/08 +5 学习了 [课程7-13] 参考阅读 - 列表、字典、元组
08/08 +5 学习了 [课程7-6] 视频 - 列表与字符串
08/08 +2 列表解析式 ';'.join [str(i) for i in range(1,100) if i % 2 ==0 and i % 3 ==0 and i % 5 ==0]
08/07 +1 2. 索引访问 通过[]加索引的方式,访问字符串中的某个字符。 print (word[0]) print (word[-2]) 与list不同的是,字符串不能通过索引访问去更改其中的字符。 word[1] = 'a' 这样的赋值是错误的!
08/05 +6 提交了 [作业]
08/05 +6 提交了 [作业]
08/05 +1 除此之外,还有另外一种选择,就是用 while True 写一个死循环,当猜中答案后,使用一个 break 的语法来跳出循环。我们可以写成: while True: 用户猜一个数 if 猜的值大于结果: 提示大于 elif 猜的值小于结果: 提示小于 else: 提示相等 break 和 break 较像的另一个语法 continue,跟 break 的差别就是,break是彻底跳出当前循环,而continue只是跳过当次循环剩下的代码,直接进入下一次循环判断。
08/03 +6 提交了 [作业]
08/03 +7 学习了 [课程7-12] 代码练习 - 元组返回值
08/02 +6 提交了 [作业]
08/02 random.choice(seq) 从序列中随机选取一个元素。seq需要是一个序列,比如list、元组、字符串。 random.choice([1, 2, 3, 5, 8, 13]) #list random.choice('hello') #字符串 random.choice(['hello', 'world']) #字符串组成的list random.choice((1, 2, 3)) #元组 都是可行的用法。 random.randrange(start, stop, step) 生成一个从start到stop(不包括stop),间隔为step的一个随机数。start、stop、step都要为整数,且start<stop。 比如: random.randrange(1, 9, 2)
08/02 andom模块的作用是产生随机数。如果想要产生一个随机的整数,就在程序的最开头写上: from random import randint 之后你就可以用 randint 来产生随机数了。 还记得input后面的()吗,我们使用randint的时候后面也要有()。而且,还要在括号中提供两个数字,先后分别是产生随机整数范围的下限和上限。例如: randint(5, 10) 这样将会产生一个5到10之间(包括5和10)的随机整数。
08/02 +2 如果你只是用到random中的某一个函数或变量,也可以通过from...import...指明: from 模块名 import 方法名
08/01 +5 学习了 [课程7-11] 代码练习 - 字典
08/01 +5 学习了 [课程7-10] 视频 - 字典、元组
08/01 集合也是 Python 内置的一种数据结构,它的概念与运算都与高中数学中的集合十分相像,而形式上则与字典有些类似,都是大括号 {} 包裹:集合就是一组互不相同的数据的组合。可以使用数学集合的交集、并集等运算:集合有一个特点,就是不允许出现重复的元素。集合有一个特点,就是不允许出现重复的元素。所以我们可以利用这个性质来去除列表中的重复元素: arr = [1,1,1,3,3,5,7,7] s = set(arr) arr = list(s) 不过通常情况下,我们不太会用到集合。
08/01 +5 学习了 [课程7-9] 图文教程 - 元组、字典、集合
08/01 #1.字典 # 创建一个字典,包含 one、two、three 三个键 # 对应的值分别为 1,2,3 data = {'one':1,'two':2,'three':3} # 将 two 键对应的值改为 4 data['two'] = 4 print(data) #2.统计下这段文字里,不同单词出现的次数 #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 sent = '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' lst1 = sent.split() print (lst1) l1=len(lst1) print(l1) a_dict={} #定义一个空字典 for i in lst1: #遍历整个列表 a_dict[i]=lst1.count(i) #对字典来说,给不存在的Key赋值,则字典会新添加该键值对:给同一个单词赋值,就是会刷新成最后一次赋值的结果。 print (a_dict)
08/01 +7 提交了 [作业]
07/28 与列表很像,元组也是有序的数据结构: list1 = [1,2,3,4] # 列表 是方括号…… tuple1 = (1,2,3,4) # 元组 是圆括号…… tuple2 = (1,'a',[1,2],('a','b')) # 元组各元素可以是不同数据类型 与列表不同的是,元组一旦确定,就不可再行更改。
07/28 +5 学习了 [课程7-8] 代码练习 - 分割与连接字符串
07/28 word = 'I am Mr Crossin of Python' # 将字符串 word 按照空格分割成一个列表 lst = word.split(' ') # 再将分割后的列表 lst 以逗号(,)为连接字符重新拼接成字符串 word2 word2 = ','.join(lst) print(word2)
07/28 lst1 = [1, 2, 3, 5, 8, 13, 22] # 将lst1中的每一项都乘以2,生成新的列表lst2 # 建议用列表解析式实现 lst2 = [l*2 for l in lst1] print(lst2)
07/28 +7 学习了 [课程7-7] 代码练习 - 列表解析式
07/27 +5 学习了 [课程7-5] 图文 - 更多列表操作
07/27 列表解析:l2 = [x*2 for x in [1,2,3,4,5,6] if x%2==0] 与list不同的是,字符串不能通过索引访问去更改其中的字符。 字符串的 split 方法将字符串分割为列表: >>> a = 'i love python' >>> l = a.split() # 将字符串按空格分割为列表 >>> l ['i', 'love', 'python'] 字符串的 join 方法,可用来拼接列表: >>> b = ' '.join(l) # 将列表的元素(必须全是字符串)拼接为一个字符串 >>> b 'i love python' 注意,join 也是需要通过一个字符串来调用,这个调用字符是拼接时的连接符,上个例子用的是空格,我们也可以用其他字符: >>> l = ['c:', 'python', 'scripts'] >>> a = '\\'.join(l) >>> a 'c:\\python\\scripts'
07/27 列表解析式的作用就是从一个列表生成另一个列表,虽然同样的事情也可以用 for循环 加 append 来做,不过在简单情况下运用列表解析式会让代码更简洁。
07/27 sort 函数是在原列表的基础上进行排序,会改变原列表,但没有返回值;而 sorted 函数则是会新建一个排好序的列表作为返回值,不影响原列表。
07/27 +1 列表的排序有多种实现方式,这节课我们介绍其中较为便捷的两种: # sort函数 >>> l = [1,3,5,2,4,6] >>> l.sort() # 正序排列 >>> l [1,2,3,4,5,6] >>> l.sort(reverse=True) # 逆序排列 >>> l [6,5,4,3,2,1] # sorted函数 >>> l = [1,3,5,2,4,6] >>> sorted(l) # 正序排列 [1,2,3,4,5,6] >>> sorted(l, reverse=True) # 逆序排列 [6,5,4,3,2,1]
07/25 lst = [365, 'everyday', 0.618, True, 2, 5] # 取出 lst 的第二个位置至倒数第二个位置的子列表 # 赋值给新的列表 lst2 lst2 = lst[1:-1] #到倒数第二位,所以应该写倒数第一位。 print(lst2)
07/25 +5 学习了 [课程7-4] 代码练习 - 列表切片操作
07/25 # 创建一个列表 lst,其中的元素依次是 1,2,3 lst = [1,2,3] # 输出 lst 中的第一个元素 1 print( lst[0]) #将 lst 的第二个元素 2 改为 4 lst[1]=4 # 在 lst 末尾再增加一个元素 5 lst.append(5) print(lst)
07/25 +5 学习了 [课程7-3] 代码练习 - 操作列表
07/25 列表 arr.append-增加,arr.insert-插入,arr.remove-删除,arr += [3,2,1]链接两个列表 append,insert.remove,sort, 列表解析[i*3 for i in arr if i >3 ]
07/25 +5 学习了 [课程7-2] 视频 - 列表
07/25 列表(list)是用来处理一组有序项目的数据结构,形式上两端由中括号[]包裹,各个元素间由逗号,隔开。 在 python 中,计数是从 0 开始的(绝大部分语言都如此)。对于列表中的每个元素,也都有唯一的序号与之对应,我们可以用函数index 来查看列表中某个元素的序号(PythonShell下执行演示):arr.index('everyday')。访问列表中的元素,直接用中括号 [] 内调用序号就行:-3 表示倒数第三个元素(-1 表示倒数第一个)。切片的形式是中括号 [] 内加冒号 : 冒号两边分别为切片的起始序号;
07/25 print(t,end = '')是取消换行,因为print()默认以换行结束,那么print()就可以作为换行
07/25 +5 学习了 [课程6-11] 编程实例 - 打印图形
07/25 isdigit() 方法检测字符串是否只由数字组成。 isalpha() 方法检测字符串是否只由字符组成。
07/25 +5 学习了 [课程6-10] 小测验 - 函数
07/25 +6 学习了 [课程6-9] 参考阅读 - 函数
07/13 +5 学习了 [课程6-8] 视频 - 函数应用实例
07/13 +5 学习了 [课程6-7] 代码练习 - 全局变量
07/13 +5 学习了 [课程6-6] 图文 - 局部变量与全局变量
07/13 +5 学习了 [课程6-5] 代码练习 - 函数的默认参数
07/13 +6 学习了 [课程6-4] 图文 - 参数与返回值
07/08 +5 学习了 [课程6-3] 代码练习 - 创建函数
07/08 +5 学习了 [课程6-2] 视频 - 函数
07/08 +5 学习了 [课程6-1] 图文 - 函数
07/08 +5 学习了 [课程5-7] 编程实例 - 猜数字
07/08 +6 学习了 [课程7-1] 图文 - 列表
07/05 +5 学习了 [课程5-6] 小测验 - 模块
07/05 +5 学习了 [课程5-5] 参考阅读 - 模块、random、math、time
07/05 +5 学习了 [课程5-4] 代码练习 - 计算圆面积
07/05 +5 学习了 [课程5-3] 代码练习 - 生成随机数
07/05 +5 学习了 [课程5-2] 视频 - random 模块
07/05 +7 学习了 [课程5-1] 图文 - 模块
07/04 +6 提交了 [作业]
07/04 +7 提交了 [作业]
06/30 +5 学习了 [课程4-15] 编程实例 - BMI 指数测试
06/30 +5 学习了 [课程4-14] 编程实例 - 数字组合
06/30 +7 提交了 [实例21] 数字组合
06/28 +6 提交了 [作业]
06/28 +5 学习了 [课程4-13] 小测验 - 控制流
06/28 +7 学习了 [课程4-12] 参考阅读 - 条件判断、循环
06/27 +5 学习了 [课程4-11] 代码练习 - 九九乘法口诀表
06/27 +5 学习了 [课程4-10] 代码练习 - 跳出循环
06/27 +5 学习了 [课程4-9] 代码练习 - for 循环
06/27 +5 学习了 [课程4-8] 视频 - for 循环
06/27 +5 学习了 [课程4-7] 图文 - for 循环
06/27 +7 提交了 [作业]
06/25 count += 1
06/25 +5 学习了 [课程4-6] 代码练习 - while 循环
06/25 +5 学习了 [课程4-5] 视频 - while 循环
06/25 +5 学习了 [课程4-4] 图文 - while 循环
06/25 +5 学习了 [课程4-3] 代码练习 - if 条件判断
06/25 +5 学习了 [课程4-2] 视频 - if 条件判断
06/25 +7 学习了 [课程4-1] 图文 - if 条件判断
06/24 +8 提交了 [作业]
06/23 +5 学习了 [课程3-16] 编程实例 - 各种变量
06/23 +5 学习了 [课程3-15] 小测验 - 基本概念
06/23 +6 学习了 [课程3-14] 参考阅读 - 变量、逻辑、类型、字符串
06/21 +5 学习了 [课程3-13] 代码练习 - 字符转数字
06/21 +5 学习了 [课程3-12] 视频 - 类型转换
06/21 +5 学习了 [课程3-11] 图文 - 类型转换
06/21 +5 学习了 [课程3-10] 代码练习 - 字符串拼接
06/21 +5 学习了 [课程3-9] 视频 - 字符串
06/21 +7 学习了 [课程3-8] 图文 - 字符串
06/20 +8 提交了 [作业]
06/19 +5 学习了 [课程3-6] 视频 - 逻辑判断
06/19 +5 学习了 [课程3-2] 视频 - 变量
06/19 +5 学习了 [课程3-7] 代码练习 - 比较大小
06/19 +5 学习了 [课程3-5] 图文 - 逻辑判断
06/19 +5 学习了 [课程3-4] 代码练习 - 变量计算
06/19 +5 学习了 [课程3-3] 代码练习 - 变量赋值
06/19 +6 学习了 [课程3-1] 图文 - 变量
06/17 +5 学习了 [课程2-7] 编程实例 - 更多的输出
06/17 +5 学习了 [课程2-6] 小测验 - 输入输出
06/17 +5 学习了 [课程2-5] 参考阅读 - 输入、输出
06/17 +5 学习了 [课程2-4] 代码练习 - Hello World
06/17 +5 学习了 [课程2-3] 视频 - 输入输出
06/17 +5 学习了 [课程2-2] 图文 - 输入
06/17 +5 学习了 [课程2-1] 图文 - 输出
06/17 +5 学习了 [课程1-6] 小测验 - 安装
06/17 +5 学习了 [课程1-5] 参考阅读 - 安装
06/17 +5 学习了 [课程1-4] 视频 - 命令提示符(可选)
06/17 +5 学习了 [课程1-3] 图文 - 代码编辑器
06/17 +5 学习了 [课程1-2] 视频 - 安装
06/17 +5 学习了 [课程1-1] 图文 - 安装 Python 步骤说明
06/17 +5 学习了 [课程0-2] 视频 - “码上行动”使用指南
06/17 +6 提交了 [作业]
06/17 +5 学习了 [课程0-1] 图文 - 新手必读
06/17 +7 提交了 [作业]
05/03 +3 阅读了 [教程5] 变量
05/03 +3 阅读了 [教程4] 输入
05/03 +3 阅读了 [教程3] IDE
05/03 +4 阅读了 [教程2] print
09/11 +4 阅读了 [教程0] 安装