编程小白的第一本Python入门书学习笔记_编程小白的第一本入门书心得体会_darerD的博客-程序员秘密

技术标签: python  Python  

编程小白的第一本Python入门书学习笔记

最近在学习Python的过程中,发现一本对小白非常友好的入门书-《编程小白的第一本Python入门书》,书中对知识点的讲解很易懂,一些以前不太理解的概念,在看完这本书之后也有眉目了。

这里主要介绍下自己学习时做的一些笔记,如果其中有理解错误的地方,麻烦评论或者私信告知。

有幕布账号的小伙伴也可以去幕布链接

字符串

  • 字符串

    img

  • 字符串的分片与索引

    • 字符串可以通过string[x]的方式进行索引、分片,也就是加一个[]

      img

  • 字符串的方法

    img

    非常形象的比喻

函数

  • 函数

    img

  • 创建函数

    img

    • 如果忘记写return,会出现什么情况

      img

      img

  • 调用函数

    • 两点最重要:
      • 定义的函数名(这个人叫什么)
      • 定义的函数参数(这个人的特点是什么,不然遇到重名,无法识别)

    循环与判断

    • 逻辑循环

      img

    • 比较运算

      img

    • 布尔值

      img

    • 列表

      img

条件控制

  • if ...... else......

    img

  • if ..... elif...... else.........

    img

循环

  • for 循环

    img

  • while循环

    img

    img

数据结构

  • 四种数据结构

    img

    • 列表

      img

      img

    • 字典

      img

      img

    • 元组

      img

      img

    • 集合

      img

    • 列表推导式

      img

      img

###类

  • 类的概念

    img

    img

  • 类有很多概念还是没有吃透和理解

  • 类有属性

    • 类的属性就如同可口可乐的饮料配方

      img

  • 类可以实例化

    • 利用饮料的配方在生产线上生产出饮料产品

    • 生产的饮料产品有着相同的配发(属性)

      img

  • 类实例化后也有属性

    • 生产线生产出的饮料,需要对其进行包装,包装就是实例的属性

      img

  • 类实例化后 肯定是希望能做一些事情

    • 这是就可以在类里定义函数,让这个类去做一些事情

    • 比如,可乐可以用来喝,用来赠送等等行为

      img

  • 后面关于 __init__的用法,还是没有看懂(有大佬懂的话,可以在评论区或者留言区解释下)

全书下载地址

应该是官网地址

或者去我的网盘直接下载

书中习题练习源代码

书中提供了一些习题,我按照自己的理解写了一些代码,分享给大家,可能代码写的不是非常合理和优雅,也希望大家多多指正。

# coding:utf-8
# 编程小白的第一本Python
# Version:Python 3
# 书中有趣的程序

search = '168'
num_a = '1386-168-0006'
num_b = '1681-222-0006'
print (search + 'is at'+str(num_a.find(search)+1)+'to'+str(num_a.find(search)+len(search))+'of num_a')
print (int(search))

### 把上面的结果改编为以下的函数
def a_function (search):
	num_a = '1386-168-0006'
	num_b = '1681-222-0006'
	a=search + 'is at'+str(num_a.find(search)+1)+'to'+str(num_a.find(search)+len(search))+'of num_a'
	return (a)	
print (a_function('168'))

# 练习题1#--------------质量转换-----------------
def q1_function (m):
	M = m/1000
	return (M)
print ("质量1000g等于:",q1_function(1000),"kg")
# 练习题2#---------------勾股定理----------------
import math
def q2_function (a,b):
	c = math.sqrt(pow(a,2)+pow(b,2))
	return (c)
a = int(input ('> '))
b = int(input ('> '))
print ('斜边长度是:',q2_function(a,b))

# 设计一个函数:写入文件#---------------------
def text_create(name,msg):
	desktop_path = 'C://Users/admin/Desktop/'
	full_path = desktop_path + name + '.txt'
	file = open (full_path,'w')
	# 参数'w'的作用:如果该路径没有文件,就会创建一个有该名称的文件,并写入内容;如果该路径有此文件,就会覆盖文本内容
	file.write(msg)
	file.close()
	print ('Done')
text_create('hello','Hello world')
# 设计一个函数:敏感词过滤#---------------------
def text_filter (word,censored_word = 'lame', changed_word = 'awesome'):
	return word.replace(censored_word,changed_word)
print (text_filter('Python is lame!'))
# 合并上面的两个函数,做一个敏感词过滤器#---------------
def censored_text_filter(name,msg):
	clean_msg = text_filter(msg)
	text_create(name,clean_msg)
censored_text_filter('try','lame,lame')

# 练习题3#---------------创建十个文本,并以数字命名----------------
def text_ten(name,msg):
	desktop_path = 'C://Users/admin/Desktop/'
	for name in range(1,11):
	# range()函数得到的是整数
		full_path = desktop_path + str(name) + '.txt'
		# 路径中需要的是字符,需要用str()函数把整数转化为字符
		file = open (full_path,'w')
		file.write(msg)
		file.close()
		print ('Done')
text_ten(name = input('> '),msg='Hello world')

# 练习题4#---------------复利计算器----------------
def Compounding_Calculator (year):
	rate = 0.05
	amount = 100
	for i in range(1,9):
		compounding_amount = amount*(1+rate)**i
		print ('principal amount:',amount)
		print ('year',i,': $',compounding_amount)
Compounding_Calculator(input('> '))
		
# 练习题5#---------------打印1-100的偶数----------------		
for i in range(1,51):
	print (2*i)

# 练习题6#---------------电话号码小游戏----------------			
CN_mobile = [134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705]
CN_union = [130,131,132,155,156,185,186,145,176,1709]
CN_telecom = [133,153,180,181,189,177,1700]
num = input()
if len(num) < 11 :
	print ('Invalid length,your number should be in 11 digits')
elif int(num[:3]) in CN_mobile:
	print ('Operator : China mobile')
elif int(num[:3]) in CN_union:
	print ('Operator : China union')
elif int(num[:3]) in CN_telecom:
	print ('Operator : China telecom')
else :
	print ('No such a operator')
print ("we're sending verification code via text to your phone: ",num)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44441012/article/details/89193550

智能推荐

redis 用scan指令 代替keys指令_redis hkeys 代替_jeffrey11223的博客-程序员秘密

本文转自:http://blog.csdn.net/qq_27623337/article/details/53201202众所周知,当redis中key数量越大,keys 命令执行越慢,而且最重要的会阻塞服务器,对单线程的redis来说,简直是灾难,终于找到了替代命令scan。SCAN cursor [MATCH pattern] [COUNT count] SCAN 命令及其相关的 SSCAN

django.db.utils.InternalError: (1060, "Duplicate column name 'user_id'")_"django django.db.utils.internalerror: (1060, \"du_奇奇怪怪re的博客-程序员秘密

django.db.utils.InternalError: (1060, “Duplicate column name ‘user_id’”)一直出现这个问题,删除了migration文件里面的除了__int__.py文件继续执行,python manage.py migration如果还有问题python manage.py migrate --fake...

SQL菜鸟学习笔记1_莫小瑞冷静且细节66的博客-程序员秘密

近期看完了SQL菜鸟学习教程,SQL 总结 | 菜鸟教程对其中遇到的一些疑惑和学习笔记打算做做整理,分几篇发出来,供大家交流和自己以后方便查看:D问题一:如果select同时选取不同表里不同列,会是什么情况?1、显示结果:从两个不同的表AB里选取A1B1列,得到的是A1每一个元素分别对应B1的所有元素的结果,也就是说会有A1*B1行。2、选取多列呢?B表中再加上B2列,同样是A1每一个元素对应的B1B2的元素的结果;同理在A表中加上若干列;3、如果加上distinct呢?A1B1列前..

undefined symbol _initgraph in module_lilv66的博客-程序员秘密

在Turbo C3.0中使用#include&lt;graphics.h&gt;int gmode;int gdriver=DETECT;initgraph(&amp;gdriver,&amp;gmode,"c:\\tc\\BGI");出现undefined symbol _initgraph in module这是没有连接入绘图库导致的。在Turbo C 3.0中需要这样设置...

HDOJ 1253 胜利大逃亡(bfs)_aqjh9999的博客-程序员秘密

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1253思路分析:因为问题需要寻找到达终点的最短的距离(最短的步数),即在状态转换图上需要找出层次最浅的的状态(A-1, B-1, C-1),所以采用bfs更快能找出答案;另外,若采用dfs则比较困难,需要遍历所有的状态才能找出结果。代码如下:#include &lt;...

linux spool目录 删除,linux清除/var/spool/clientmqueue下海量小文件方法_Charnychi的博客-程序员秘密

昨天发了一天文章,inode100%故障导致无法上传文件,今天空间又满了,不得不再次仔细核查这个问题,终于找到了罪魁祸首,那就是/var/spool/clientmqueue这个目录下存有海量的日志内容,估算这个目录下有千万级别的小文件,难怪会导致inode用完这个奇葩问题。ps:不要尝试在wdcp或者宝塔面板中打开这个文件夹,那一定会卡死。经过查阅资料,发现linux下的cron定时任务在没有重...

随便推点

知其然也要知其所以然---Kernel上报电量UEvent事件流程分析_class_for_each_device_liangguangyuan的博客-程序员秘密

1,kernel-4.4\drivers\power\power_supply_core.c当电量信息需要更新的时候,kernel会调用power_supply_changed_work这个工作队列,使用kobject_uevent函数往上发送uevent事件,action是KOBJ_CHANGE;static void power_supply_changed_w...

ICON艾肯live声卡系列驱动安装设置方法_天韵音频的博客-程序员秘密

ICON艾肯live系列usb外置声卡包括Cube 4Nano 2nano 6Nano Duo22 Duo44 MicU MobileR MobileU MobileU MINI VH4 Uports2 Uports4 Uports6 Utrack UtrackPro Ultra 4 Platform U22 VH6等多种型号。如何安装声卡驱动;首先要进入icon声卡官网,点击live录制声卡,找到对应的声卡型号;比如以cube 4nano live声卡为例,点击cube 4nano live图片,找到下载

python oracle转mysql_python 取oracle数据转存至mysql_抱紧上仙的博客-程序员秘密

由于grafana的oracle插件需要付费,所以只能想想办法,于是就用Oracle的数据转到mysql数据库里面。其实也很简单,需要提前安装好python和oracle数据库驱动cx_oracle 和MySQL 驱动,具体可以自己搜索。脚本如下#!/usr/bin/python# -*- coding: UTF-8 -*-import cx_Oracle #导入包import MySQLdbim...

AttributeError: module ‘tensorflow._api.v1.summary‘ has no attribute ‘create_file_writer‘_life after life的博客-程序员秘密

【AttributeError: module ‘tensorflow._api.v1.summary’ has no attribute ‘create_file_writer’ 】tensorflow版本不兼容问题卸载tensorflowpip uninstall tensorflow安装tensorflowpip install tensorflow注:若需指明安装版本 可 pip install tensorflow==X.X.XX.X.X——版本号...

解决C#操作注册表权限不够的问题_celte的博客-程序员秘密

在Win7中,系统安全系数已经很高了,因此.NET4.0中对于注册表操作这种高级权限的东西也限制的比较紧,因此,在编程中经常会发现,使用RegistryKey类进行操作时的各种失效或者各种报错。如何解决这问题呢?首先,因为要操作注册表,所以,需要程序以管理员身份运行。在Win7系统中的表现即为运行程序时,弹出用户帐户控制对话框,申请以管理员身份运行。在项目中新建一个后缀

js实现抽奖系统(可修改号码个数及抽奖次数)_看到代码头都是大的的博客-程序员秘密

效果截图:效果说明设置最大号码个数为90,抽奖次数无限制当输入格式不正确时,会设置一个默认的值(号码个数默认为90,抽奖次数默认为1)当输入无误时,点击提交,即可开始抽奖在抽奖过程中,可点击提交按钮重置号码个数及抽奖次数代码&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;抽奖系统的实现&lt;/title&gt;&lt;

推荐文章

热门文章

相关标签