python学习第一周总结

一、Markdown语法

Markdown是一种轻量级标记语言,排版语法简洁,它使用易读易写的纯文本格式编写文档,可与HTML混编,可导出 HTML、PDF 以及本身的 .md 格式的文件。基于Markdown的优势,本周学习Markdown语法的基本用法对以后的学习生活尤为重要。

二、Python基础语法

  • 注释:代码中不会被编译成机器码的部分,即不影响程序功能的部分

    单行注释:在一行内容前加 # 或者 ctrl+/

    多行注释:将注释内容放在三个单(双)引号内

    注释的作用:

    a. 对代码进行注解和说明,增加代码的可读性

    b. 取消有效代码的功能

  • 标识符 - Python命名要求

    标识符要求:由字母数字下划线组成,数字不能开头

    但,例如 n*m = 12n = 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 (字符串)

    布尔:只有 TrueFalse两个结果,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学习第一周总结相关推荐

  1. 01 Python学习--第一周--开课介绍、数据类型、数据运算、表达式、循环、三元运算、对象基本概念...

    模块一主要内容 开课介绍 python发展介绍 第一个python程序 变量 字符编码与二进制 字符编码的区别与介绍 用户交互程序 if else流程判断 while 循环 while 循环优化版本 ...

  2. python学习第一周(1)

    备注:一般规范代码,可以操作code-reformat code 1. #!/usr/bin/env python 脚本语言第一行 作用:文件中代码用指定可执行程序运行,在unix类的操作系统才有意义 ...

  3. python学习第一周 模拟登陆

    今天开始学习python,在这个博客记录下学习过程,当作自己成长的见证. #!/usr/bin/env python # -*- coding: utf-8 -*- ## Author:lzf8989 ...

  4. 掉进悬崖的小白,捡到python基础秘籍,学习第一周——语法基础,小游戏,无脑循环

    掉进悬崖的小白,捡到python基础秘籍,学习第一周--语法基础,小游戏,无脑循环 人生苦短,我用python 语言的种类: 语言的发展: 什么是python 搭建 Python开发环境: 集成开发环 ...

  5. Datacamp 学习第一周

    Datacamp 学习第一周总结 Intro to Python for Data Science 列表 numpy package 字典 pandas comparision operators l ...

  6. 201671010140. 2016-2017-2 《Java程序设计》java学习第一周

       java学习第一周        本周是新学期的开端,也是新的学习进程的开端,第一次接触java这门课程,首先书本的厚度就给我一种无形的压力,这注定了,这门课程不会是轻松的,同时一种全新的学习方 ...

  7. python学习第一课——环境配置+比着葫芦画个瓢

    python学习第一课 1. python概览 2. python的运行 3. python的变量.类型与存储 4. 对*.py文件的运行与存储 5. 终端切换路径及目录显示 6. 踩着巨人的肩膀创新 ...

  8. Python学习第二周总结

    Python学习第二周总结 ​ 第二周主要学了python中几种常见的数据结构,分别是列表.元组.字符串.集合.字典重点就是怎么创建和使用这些数据结构,操作方法更是一定要掌握的. 一.列表 1.1 定 ...

  9. 心向天蓝,Python学习第一章之列表一

    心向天蓝,Python学习第一程之列表一 下面这篇是关于列表的详细操作和介绍: 列表:是由一系列按特定顺序排列的元素组成. 在列表里,你可以加入任何你想加入的元素,可以是字母表里的任何元素,也可以是数 ...

最新文章

  1. 灵动MM32 MCU助力全国大学生智能汽车竞赛
  2. (转)Android 使用com.j256.ormlite
  3. 【机器学习算法-python实现】采样算法的简单实现
  4. 移动端前端开发注意点(未完待续)
  5. 实践证明m1上面的windows可以说一无是处
  6. VTK:IO之ReadPDB
  7. opengl绘制长方体线框_OpenGL绘图实例十之绘制3D机器人
  8. AI+遥感:释放每个像元价值(人工智能应用案例)
  9. centos图形化桌面的文件在哪_CentOS 安装图形桌面
  10. PAT-Mars number
  11. 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类, 属性: 员工的姓名,员工的生日月份。 方法:getSalary(
  12. 使用 session_destroy() 销毁session文件时 报 Trying to destroy uninitialized session 错误解决办法
  13. linux+html5+开发工具,记不住 Linux 命令?这三个工具可以帮你
  14. 农村男女离婚,为什么感觉很多都是女人什么都带不走?
  15. 招聘|华为2012部门招算法工程师
  16. 罗永浩直播带货卖了1.1亿,更高级的自我认知【附直播卖货商业计划书PPT】
  17. Python数据处理Tips数据预处理操作方法汇总
  18. 慧编程python硬件_什么是慧编程?慧编程介绍
  19. 计算机网络基础知识总结【转自微信公众号杰哥的IT之旅】
  20. php的微信登录示例代码,关于微信用户注册登录实例代码汇总

热门文章

  1. 18awg线材最大电流_说一说车用电缆线束的金属线材
  2. 为什么有些公司团队特别稳定,有些公司团队动荡不安?
  3. 1 ZigBee是什么?有什么特点?有什么用?
  4. 现代图论笔记(一)图论的基础知识
  5. python中config方法作用_使用Python中的config配置
  6. android 编译 pppoe,android pppoe
  7. 【每日一题】打卡 11
  8. PySide2、nltk、wordcloud、gensim、sklearn、pyinstaller实现词嵌入可视化、绘制词云图、制作GUI并打包的踩坑总结
  9. 分享一个工作日 今天是周六
  10. java ear war_基于Java的打包jar、war、ear包的作用与区别详解