python学习第一周总结
python学习第一周总结
一、Markdown语法
Markdown是一种轻量级标记语言,排版语法简洁,它使用易读易写的纯文本格式编写文档,可与HTML混编,可导出 HTML、PDF 以及本身的 .md 格式的文件。基于Markdown的优势,本周学习Markdown语法的基本用法对以后的学习生活尤为重要。
二、Python基础语法
注释:代码中不会被编译成机器码的部分,即不影响程序功能的部分
单行注释:在一行内容前加
#
或者ctrl+/
多行注释:将注释内容放在三个单(双)引号内
注释的作用:
a. 对代码进行注解和说明,增加代码的可读性
b. 取消有效代码的功能
标识符 - Python命名要求
标识符要求:由字母、数字、下划线组成,数字不能开头
但,例如
n*m = 1
,2n = 2
此时系统会报错。关键字不能用来命名
本身具有特殊意义或者特殊功能的标识符,即关键字。
# 输出所有的关键字 from keyword import kwlist print(kwlist) # ['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
行和缩进
一条语句占一行,一行结束后不需要分号;
一行的开头不能随意添加缩进(空格) - 默认情况下所有的代码都需要顶格写。
基本数据类型
数字:用来表示数值大小的数据
对应类型:
int
(整型)、float
(浮点型)文本:用来表示文字信息的数据,例:姓名、性别、所属地电话号码、身份证号码等等。
对应类型:
str
(字符串)布尔:只有
True
和False
两个结果,True
表示(真)肯定的回答,False
表示(假)否定的回答对应类型:
bool
(布尔)空值:
None
(表示空/没有)获取数据类型: 使用
type()
函数类型转换:
int(数据)、float(数据)、str(数据)、bool(数据)
注意:浮点类字符串不可直接转换为整型
print
函数print(数据) print(数据1, 数据2, ...) print(数据1, 数据2, ..., end=字符串) print(数据1, 数据2, ..., sep=字符串)
三、变量
变量的作用
变量是用来保存数据的。(将变量保存到变量中以后,就可以通过使用变量来实验数据)
数据保存到变量中以后再来使用数据可以让数据的意义更明确
在需要数据的时候先将数据保存到变量中,再通过使用变量来使用数据
使用数据的建议 :每次在使用数据的时候,先用变量将数据存起来,然后再通过使用变量来使用数据。
定义变量(创建变量保存数据)
''' 语法: 变量名 = 数据说明: a.变量名 - 由程序员自己命名2个要求:标识符;不是关键字3个规范:见名知义(看到变量名就知道变量中保存的是什么数据);不使用系统的函数名(print)、类名(int\float\str)或者模块名;所有的字母都小写,多个单词用下划线隔开。 # pet_name = '小黑' b. = - 赋值符号;固定写法 c. 数据 - 可以是任何有结果的表达式(包括:具体的数据、运算表达式、...) '''
使用变量(必须是已定义的变量) - 打印、赋值、运算
使用变量是指使用变量中保存的数据。
num = 10 print(num) # 10 num1 = num print(num1 + 20) # 30 print(num2) # NameError: name 'num2' is not defined
重新给变量赋值 - 给已定义过的变量重新赋值(修改变量的值)
a = 12 print(a) # 12 a = 23 print(a) # 23 a = 'hello' print(a) # hello
Ps:重新赋值时可以赋予不同类型的数据。
同时定义多个变量
a. 同时定义多个变量赋相同的值:
变量1 = 变量2 = 变量3 = ... = 数据
x = y = z = 1
b. 同时定义多个变量赋不同的值:
变量1, 变量2, 变量3, ... = 数据1, 数据2, 数据3, ...
m,n = 1,2
例题:交换两个变量的值
a = 100 b = 200 b,a = a,b # b,a = 200,100 print(a,b) # 200 100
四、运算符
数学运算
Python中数学运算符: +、-、*、/、%(取余-求余数)、//(整除,向下取整)、**(幂运算)
应用
# 判断整除关系 print(10 % 5) print(8 % 2) print(15 % 3)# 判断数字的奇偶性 num = 67 print(num % 2)# 取整除的低位数(砍掉高位保留低位) num = 345 print(num % 10) print(num % 100)# 去掉整数的低位数,保留高位数 - 对10的n次方整除 num = 9876 print(num // 10) print(num // 100) print(num // 1000)
练习
# 练习1: 获取num中的十位数 num = 782 print(num % 100 // 10) print(num // 10 % 10)# 练习2: 获取num中的百位数 num = 82349 print(num % 1000 // 100) print(num // 100 % 10)
比较运算
比较运算符: >、<、>=、<=、==、!=(不等于)
所有的比较运算符的运算结果都是布尔值 : True/False
Python中的比较运算符支持连写表示范围
练习
# 写出判断score是否在[70, 90)范围内 score = int(input('请输入分数:')) print(70 <= score < 90)
逻辑运算
逻辑运算符: and(逻辑与)、or(逻辑或)、not(逻辑非)
复合条件 - 将多个条件连接成一个条件的连接方法:
a.要求多个条件同时成立 b.要求多个条件中只要有一个条件成立就行
and
''' 1)应用场景: 要求多个条件同时成立的时候 2)运算规则: 条件1 and 条件2 - 两个条件都成立结果就是True,只要有一个不成立就是FalseTrue and True TrueTrue and False False '''
or
''' 1)应用场景: 要求多个条件中只有一个成立就行 2)运算规则: 条件1 or 条件2 '''
not
''' 1)应用场景: 对条件进行否定 2)运算规则: not 条件 - 对指定条件进行否定 '''
案例
# 案例1:写出判断num是否能够同时被3和5整除的条件 num = 78 print('num是否能够同时被3和5整除:', num % 3 == 0 and num % 5 == 0) print('num是否能够同时被3和5整除:', num % 15 == 0)# 案例2:写出判断num是否是大于10的偶数的条件 num = 78 print('num是否是大于10的偶数:', num > 10 and num % 2 == 0)# 案例3:写出判断num是否是能被5整除的奇数 num = 15 print('num是否是能被5整除的奇数:', num % 5 == 0 and num % 2 != 0)# 案例4: 判断num是否能被3或者7整除 num = 34 print('num是否能被3或者7整除', num % 3 == 0 or num % 7 == 0)# 案例5:判断year对应的年份是否是闰年 year = 2000 print('否是闰年:', (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0))# 案例6: 写出age不大于18的条件 age = 72 print(not age > 18) print(age <= 18)# 案例7: num不等于10的条件 num = 23 print(not num == 10) print(num != 10)# 案例8:写出判断num是否不能同时被3和7整除的条件 num = 23 print(not (num % 3 == 0 and num % 7 == 0))
赋值运算
赋值运算符: =、+=、-=、*=、/=、%=、//=、**=
不管是简单的赋值运算符还是复合赋值运算符,其功能都是给变量赋值
注意: 所有赋值运算符的左边必须是变量,右边必须是能够提供数据的表达式
运算符优先级
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
五、控制流程语句
流程控制 - 控制代码的执行顺序
根据代码执行过程的不同,可以将代码分为三种结构:
- 顺序结构(默认):代码从上往下按顺序执行,每条语句只执行一次。
- 分支结构:根据条件选择分支代码进行执行 - if语句
- 循环结构:代码重复执行 -
for``````while
循环
分支结构
if单分支结构
''' 语法: if 条件语句:代码段说明: if - 固定写法 条件语句 - 任何有结果的表达式,一般是结果为布尔值的表达式 : - 固定写法 代码段 - 结构上,和if保持一个缩进(一个tab)的一条或者多条语句(至少一条)逻辑上,就是满足条件才需要执行的代码 '''
if双分支结构
''' 语法: if 条件语句:代码段1(满足条件会执行的代码) else:代码段2(条件不成立会执行的代码) '''
if多分支结构
''' 方法1: if 条件1:代码段1 if 条件2:代码段2 if 条件3:代码段3 ...(每个条件都会判断)方法2: if 条件1:代码段1 elif 条件2:代码段2 elif 条件3:代码段3 ... else:代码段N (从前往后判断条件,执行第一个满足条件对应的代码段,一旦某个条件成立,后面的条件不会再执行) '''
案例
# 案例1: 根据num的值打印'偶数'(如果num的值是偶数就打印'偶数') num = 35 if num % 2 == 0:print('偶数') else:print('奇数')# 案例2:根据num的值打印'3的倍数' num = 78 if num % 3 == 0:print('3的倍数')# 案例3:如果year对应的年份是闰年就打印'闰年' year = 1998 if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):print('闰年')# 案例4:若x是整数就打印'整数' x = 34.9 if type(x) == int:print('整数')# 案例5: 跟据num的值打印'偶数'或者'奇数' num = 24 if num % 2 == 0:print('偶数') else:print('奇数')# 案例6:根据year的值打印'闰年'或者'平年' year = 2100 if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):print('闰年') else:print('平年')# 案例7: 打印指定的百分制分数对应的等级: >=90 - A; [80, 90) - B score = 19 if score >= 90:print('A') if 80 <= score < 90:print('B') if 60 <= score < 80:print('C') if score < 60:print('D')score = 78 if score >= 90:print('A') elif score >= 80:print('B') elif score >= 60:print('C') else:print('D')
循环结构
for循环
''' for 循环变量 in range(start, end):语句1语句2语句3range(100) - 0~99的取值范围 range(0, 100) - 0~99的取值范围 range(1, 101) - 1~100的取值范围 '''
while循环
''' while 条件语句:循环体 '''
案例
# 案例1 for i in range(1, 10, 3):print('*' * i)# 案例2:输出1-9的数字以及他们的平方和立方 for x in range(1, 10):print(x, x ** 2, x ** 3)for x in range(1, 10):print('%d\t%d\t%d' % (x, x ** 2, x ** 3))for x in range(1, 10):print(f'{x}\t{x ** 2}\t{x ** 3}')# 案例3:1-100求和 total = 0 for i in range(1, 101):total += iprint(total)# 案例4:奇数和 total = 0 for i in range(1, 101, 2):total += iprint(total)# 案例5:偶数和 total = 0 for i in range(2, 101, 2):total += iprint(total)# 案例6:找出100-999之间的水仙花数 for x in range(100, 1000):a = x // 100b = x // 10 % 10c = x % 10if (a ** 3 + b ** 3 + c ** 3 == x):print(x)# 案例7:输入一个大于1的正整数,判断它是不是质数# num = int(input('num = ')) # # 假设输入的num是一个质数将布尔值赋值为True # is_prime = True # for i in range(2, num): # # 如果在2~N-1之间找到了num的因子 # if num % i == 0: # # 不是质数就将对应的布尔值赋值为False # is_prime = False # break # # if is_prime: # print(f'{num}是质数.') # else: # print(f'{num}不是质数.')for num in range(2, 100):is_prime = Truefor i in range(2, num):if num % i == 0:is_prime = Falsebreakif is_prime:print(num)# 案例8:猜数字小游戏 import randomanswer = random.randrange(1, 101) counter = 0 while True:counter += 1thy_answer = int(input('请输入: '))if thy_answer > answer:print('小一点')elif thy_answer < answer:print('大一点')else:print('恭喜你,猜中了!')breakif counter > 7:print('温馨提示: 智商余额不足!!!') print('游戏结束')# 案例9:求最大公约数和最小公倍数# for i in range(1, 10): # for j in range(1, i+1): # print(f'{i} * {j} = {i * j}', end='\t') # print() # x = int(input('x = ')) y = int(input('y = ')) # # z = x if x <= y else y # # for i in range(z, 0, -1): # if x % i == 0 and y % i == 0: # print(f'{x}和{y}的最大公约数是: {i}') # print(f'{x}和{y}的最小公倍数是: {x * y // i}') # breaka, b = x, y while b % a != 0:a, b = b % a, aprint(f'{x}和{y}的最大公约数是: {a}') print(f'{x}和{y}的最小公倍数是: {x * y // a}')# 案例10:求平均值(10个数) total = 0for _ in range(10):total += float(input()) print(f'平均值: {total / 10:.2f}')# 案例11:求排列数和组合数 from math import factorial as f n = int(input('n = ')) k = int(input('k = '))fn = 1 for i in range(2, n + 1):fn *= ifm = 1 for i in range(2, n - k + 1):fm *= iprint(f'p({n},{k}) = {fn // fm}')fk = 1 for i in range(2, k + 1):fk *= iprint(f'c({n},{k}) = {fn // fk // fm}')n = int(input('n = ')) k = int(input('k = '))print(f'p({n},{k}) = {f(n) // f(n - k)}') print(f'c({n},{k}) = {f(n) // f(k) // f(n - k)}')# 案例12:判断三个数是否能构成三角形 a = float(input()) b = float(input()) c = float(input())if a + b > c and b :p = a + b + ch = p / 2s = (h * (h - a) * (h - b) * (h - c)) ** 0.5print(f'三角形的周长: {p}')print(f'三角形的面积: {s}') else:print('无效输入: 无法构成三角形')# 案例14:百钱百鸡问题 for x in range(21):for y in range(34):for z in range(0, 100, 3):if x + y + z == 100 and 5 * x + 3 * y + z // 3 == 100:print(x, y, z)for x in range(21):for y in range(34):z = 100 - x - yif z % 3 == 0 and 5 * x + 3 * y + z // 3 == 100:print(x, y, z)
for 和 while 的选择问题
''' 循环问题优先考虑for循环,for循环解决不了才使用while循环 ''' for 的应用场景:循环次数确定 while 的应用场景:循环次数不确定(写代码的时候程序员无法知道循环的次数)
break
关键字break 的作用:结束整个循环(执行循环体的时候如果遇到
break
,循环直接结束)for i in range(10):if i > 2:breakprint('hello')
while 遇到 break
''' # while True 是个恒成立的循环,若后面没有break则会陷入死循环 while True: 需要重复执行的操作if 循环结束条件:break '''
练习
# 五人分鱼问题 f = 6 while True:total = fis_total = Truefor _ in range(5):if (total - 1) % 5 == 0:total = (total - 1) // 5 * 4else:is_total = Falsebreakif is_total:breakf += 5print(f'总共至少有{f}条鱼')# 掷骰子(10000次)统计每个点数出现的次数和频率 face3 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] while True:for i in range(10000):face1 = random.randint(1, 6)face2 = random.randint(1, 6)face3[face1 + face2] +=1for i in range(len(face3)):rate = face3[i]/10000print(f'点数{i}共出现了{face3[i]}次')print(f'出现的概率{rate:.2%}')break# 找出一万以内的完美数(一个数=除自身以外所有因子的和) def num(i):x = 0for j in range(1, i):if i % j ==0:x += jelse:continueif x == i:print(i)for i in range(1, 10001):num(i)for num in range(2, 10000):total = 1for i in range(2, int(num ** 0.5) + 1):if num % i == 0:total += iif i != num // i:total += num // iif total == num:print(num)# 输入三角形三条边的长度,先判断能否构成三角形,如果能则计算三角形的周长和面积 a = int(input("请输入一个整数:")) b = int(input("请输入一个整数:")) c = int(input("请输入一个整数:")) if a + b > c and b + c > a and c + a > b:C = a + b + cx = C / 2S = pow(x * (x - a) * (x - b) * (x - c), 0.5)print(f'三角形的周长为{C}, 面积为{S}') else:print('不能构成三角形')# 输入两个正整数,求它们的最大公约数和最小公倍数 num1 = int(input('请输入一个数:')) num2 = int(input('请输入一个数:')) x = 0 for i in range(1, num1+1):for j in range(1, num2+1):if num1 % i == 0 and num2 % j ==0 and i == j:if x < i:x = icontinue print(f'最大公约数为{x}')if num1 < num2:num1, num2 = num2, num1 y = num1 while y > 0:if y % num1 == 0 and y % num2 == 0:print(f'最小公倍数为{y}')breaky += 1# 输出100以内的质数 for num in range(100):is_prime = Truefor i in range(2, num):# 如果在2~N-1之间找到了num的因子if num % i == 0:# 不是素数就将对应的布尔值赋值为Falseis_prime = Falsebreakif is_prime:print(num)
六、本周总结
- 跟着老师的节奏,学习了Python的基本语法、python的运算符和控制流程语句,为后期的学习奠定了一定的基础,期待下周对于常见容器型数据类型和函数的学习。
python学习第一周总结相关推荐
- 01 Python学习--第一周--开课介绍、数据类型、数据运算、表达式、循环、三元运算、对象基本概念...
模块一主要内容 开课介绍 python发展介绍 第一个python程序 变量 字符编码与二进制 字符编码的区别与介绍 用户交互程序 if else流程判断 while 循环 while 循环优化版本 ...
- python学习第一周(1)
备注:一般规范代码,可以操作code-reformat code 1. #!/usr/bin/env python 脚本语言第一行 作用:文件中代码用指定可执行程序运行,在unix类的操作系统才有意义 ...
- python学习第一周 模拟登陆
今天开始学习python,在这个博客记录下学习过程,当作自己成长的见证. #!/usr/bin/env python # -*- coding: utf-8 -*- ## Author:lzf8989 ...
- 掉进悬崖的小白,捡到python基础秘籍,学习第一周——语法基础,小游戏,无脑循环
掉进悬崖的小白,捡到python基础秘籍,学习第一周--语法基础,小游戏,无脑循环 人生苦短,我用python 语言的种类: 语言的发展: 什么是python 搭建 Python开发环境: 集成开发环 ...
- Datacamp 学习第一周
Datacamp 学习第一周总结 Intro to Python for Data Science 列表 numpy package 字典 pandas comparision operators l ...
- 201671010140. 2016-2017-2 《Java程序设计》java学习第一周
java学习第一周 本周是新学期的开端,也是新的学习进程的开端,第一次接触java这门课程,首先书本的厚度就给我一种无形的压力,这注定了,这门课程不会是轻松的,同时一种全新的学习方 ...
- python学习第一课——环境配置+比着葫芦画个瓢
python学习第一课 1. python概览 2. python的运行 3. python的变量.类型与存储 4. 对*.py文件的运行与存储 5. 终端切换路径及目录显示 6. 踩着巨人的肩膀创新 ...
- Python学习第二周总结
Python学习第二周总结 第二周主要学了python中几种常见的数据结构,分别是列表.元组.字符串.集合.字典重点就是怎么创建和使用这些数据结构,操作方法更是一定要掌握的. 一.列表 1.1 定 ...
- 心向天蓝,Python学习第一章之列表一
心向天蓝,Python学习第一程之列表一 下面这篇是关于列表的详细操作和介绍: 列表:是由一系列按特定顺序排列的元素组成. 在列表里,你可以加入任何你想加入的元素,可以是字母表里的任何元素,也可以是数 ...
最新文章
- 灵动MM32 MCU助力全国大学生智能汽车竞赛
- (转)Android 使用com.j256.ormlite
- 【机器学习算法-python实现】采样算法的简单实现
- 移动端前端开发注意点(未完待续)
- 实践证明m1上面的windows可以说一无是处
- VTK:IO之ReadPDB
- opengl绘制长方体线框_OpenGL绘图实例十之绘制3D机器人
- AI+遥感:释放每个像元价值(人工智能应用案例)
- centos图形化桌面的文件在哪_CentOS 安装图形桌面
- PAT-Mars number
- 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类, 属性: 员工的姓名,员工的生日月份。 方法:getSalary(
- 使用 session_destroy() 销毁session文件时 报 Trying to destroy uninitialized session 错误解决办法
- linux+html5+开发工具,记不住 Linux 命令?这三个工具可以帮你
- 农村男女离婚,为什么感觉很多都是女人什么都带不走?
- 招聘|华为2012部门招算法工程师
- 罗永浩直播带货卖了1.1亿,更高级的自我认知【附直播卖货商业计划书PPT】
- Python数据处理Tips数据预处理操作方法汇总
- 慧编程python硬件_什么是慧编程?慧编程介绍
- 计算机网络基础知识总结【转自微信公众号杰哥的IT之旅】
- php的微信登录示例代码,关于微信用户注册登录实例代码汇总
热门文章
- 18awg线材最大电流_说一说车用电缆线束的金属线材
- 为什么有些公司团队特别稳定,有些公司团队动荡不安?
- 1 ZigBee是什么?有什么特点?有什么用?
- 现代图论笔记(一)图论的基础知识
- python中config方法作用_使用Python中的config配置
- android 编译 pppoe,android pppoe
- 【每日一题】打卡 11
- PySide2、nltk、wordcloud、gensim、sklearn、pyinstaller实现词嵌入可视化、绘制词云图、制作GUI并打包的踩坑总结
- 分享一个工作日 今天是周六
- java ear war_基于Java的打包jar、war、ear包的作用与区别详解