最近在学习Python的过程中,发现一本对小白非常友好的入门书-《编程小白的第一本Python入门书》,书中对知识点的讲解很易懂,一些以前不太理解的概念,在看完这本书之后也有眉目了。
这里主要介绍下自己学习时做的一些笔记,如果其中有理解错误的地方,麻烦评论或者私信告知。
有幕布账号的小伙伴也可以去幕布链接
字符串
字符串的分片与索引
字符串可以通过string[x]
的方式进行索引、分片,也就是加一个[]
字符串的方法
非常形象的比喻
函数
创建函数
如果忘记写return
,会出现什么情况
调用函数
逻辑循环
比较运算
布尔值
列表
if ...... else......
if ..... elif...... else.........
for
循环
while
循环
四种数据结构
列表
字典
元组
集合
列表推导式
###类
类的概念
类有很多概念还是没有吃透和理解
类有属性
类的属性就如同可口可乐的饮料配方
类可以实例化
利用饮料的配方在生产线上生产出饮料产品
生产的饮料产品有着相同的配发(属性)
类实例化后也有属性
生产线生产出的饮料,需要对其进行包装,包装就是实例的属性
类实例化后 肯定是希望能做一些事情
这是就可以在类里定义函数,让这个类去做一些事情
比如,可乐可以用来喝,用来赠送等等行为
后面关于 __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)
本文转自: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’”)一直出现这个问题,删除了migration文件里面的除了__int__.py文件继续执行,python manage.py migration如果还有问题python manage.py migrate --fake...
近期看完了SQL菜鸟学习教程,SQL 总结 | 菜鸟教程对其中遇到的一些疑惑和学习笔记打算做做整理,分几篇发出来,供大家交流和自己以后方便查看:D问题一:如果select同时选取不同表里不同列,会是什么情况?1、显示结果:从两个不同的表AB里选取A1B1列,得到的是A1每一个元素分别对应B1的所有元素的结果,也就是说会有A1*B1行。2、选取多列呢?B表中再加上B2列,同样是A1每一个元素对应的B1B2的元素的结果;同理在A表中加上若干列;3、如果加上distinct呢?A1B1列前..
在Turbo C3.0中使用#include<graphics.h>int gmode;int gdriver=DETECT;initgraph(&gdriver,&gmode,"c:\\tc\\BGI");出现undefined symbol _initgraph in module这是没有连接入绘图库导致的。在Turbo C 3.0中需要这样设置...
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1253思路分析:因为问题需要寻找到达终点的最短的距离(最短的步数),即在状态转换图上需要找出层次最浅的的状态(A-1, B-1, C-1),所以采用bfs更快能找出答案;另外,若采用dfs则比较困难,需要遍历所有的状态才能找出结果。代码如下:#include <...
昨天发了一天文章,inode100%故障导致无法上传文件,今天空间又满了,不得不再次仔细核查这个问题,终于找到了罪魁祸首,那就是/var/spool/clientmqueue这个目录下存有海量的日志内容,估算这个目录下有千万级别的小文件,难怪会导致inode用完这个奇葩问题。ps:不要尝试在wdcp或者宝塔面板中打开这个文件夹,那一定会卡死。经过查阅资料,发现linux下的cron定时任务在没有重...
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系列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图片,找到下载
由于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’ 】tensorflow版本不兼容问题卸载tensorflowpip uninstall tensorflow安装tensorflowpip install tensorflow注:若需指明安装版本 可 pip install tensorflow==X.X.XX.X.X——版本号...
在Win7中,系统安全系数已经很高了,因此.NET4.0中对于注册表操作这种高级权限的东西也限制的比较紧,因此,在编程中经常会发现,使用RegistryKey类进行操作时的各种失效或者各种报错。如何解决这问题呢?首先,因为要操作注册表,所以,需要程序以管理员身份运行。在Win7系统中的表现即为运行程序时,弹出用户帐户控制对话框,申请以管理员身份运行。在项目中新建一个后缀
效果截图:效果说明设置最大号码个数为90,抽奖次数无限制当输入格式不正确时,会设置一个默认的值(号码个数默认为90,抽奖次数默认为1)当输入无误时,点击提交,即可开始抽奖在抽奖过程中,可点击提交按钮重置号码个数及抽奖次数代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>抽奖系统的实现</title><