week1 - 总结

week1 - 总结

一、markdown语法

1、标题

标题:在普通文字内容前加#,再按空格

# 一级标题
...
###### 六级标题

2、代码块

代码块:三个反引号开头,三个反引号结束,中间写代码。第一个三个反引号的后面写编程语言。

3、图片和超链接

添加图片:感叹号中括号感叹号,然后在小括号中写图片路径(必须英语)

​ 即:

添加超链接:中括号小括号,在中括号输入显示并且可点击的内容,小括号中输入跳转的网页地址

​ 即:

4、表格

表格:|–|–|,再按回车

5、列表

有序列表语法:数字 + 英文小数点(.) + 空格

例如:

  1. list1
  2. list2

无序列表:+或者- 空格

  • list1
  • list2

6、目录

目录:[toc] + enter

二、Python基本语法和变量

1、基本语法

(1)注释
  • 单行注释:#
  • 多行注释:三个单引号或者三个双引号
# 单行注释

'''
多行注释
'''
(2)行和缩进
  • 行:一个语句表示一行,多个语句在同一行时需要用分号隔开
  • 缩进:一个语句的开头不能随意缩进,默认是顶行写
print(1)
print(a);print(b)
(3)标识符和关键字
  • 标识符:python命名时要求必须是标识符,标识符要求:名字必须由字母、数字或者下划线组成,不能由数字开头
  • 关键字:本身具有特殊意义或者特殊功能的标识符
(4)基本数据类型
  • 数字数据:用来表示数值大小的数据(即数字),根据是否有小数点分为整型(int)和浮点型(float)

​ 表示方法:和数学中表示数字方式一样

  • 文本数据:用文字符号来表示信息的数据。文本数据的数据类型只有字符串(str)

​ 表示方法:将文本数据放在单引号或者双引号中间

  • 布尔数据:在程序中表示真假、成立与否的关系(,数据类型为布尔(bool)

​ 表示方法:只有True,False(用True表示真、成立,即1;用False表示假、不成立,即0)

  • 空值:在程序中表示空,没有

​ 表示方法:None

2、类型和类型转换

(1)获取数据类型
  • type函数:获取指定类型的数据,表示方法:type(数据)
(2)类型转换
  • 表示方法:类型名(数据)
# int(数据)
print(int(1,1))      # 所有小数都可以转换成int(转换的时候只保留整数部分)
print(int(True))     # 所有的布尔值都可以转换成整数
print(int('11'))     # 符串内容是整数的字符串(即去掉字符串的引号以后本身是一个整数的字符串)

# float(数据)
print(float(1))      # 所有的整数可以转换成float
print(float(True))   # 所有的布尔值可以转换成float
print(float(2e2))    #去掉字符串的引号以后本身是一个数字的字符串可以转换成float

# str(数据)
print(str(3.14))     # 任何类型的数据都可以转换成字符串,转换成字符串的时候是直接在原有数据外加上引号

# bool(数据)         #任何类型的数据都可以转换成布尔
# False
print(bool(0.0))     # 所有的零值(0,0.0等)和空值(None,'',[])都转换成False
# True
print(bool('False')) # 其他的转换成True

3、输出和输入类型

  • print - 输出函数
# 一个print打印一个数据
print(100)

# 一个print同时打印多个数据:print(数据1,数据2,...) 
print(1,'2',True,type('123'))

# 定制end:print(数据1,数据2,...,end=字符串)
print(1, end=';')
print(2)
'''
1;2

'''

# 定制sep:print(数据1,数据2,...,sep=字符串)
print(1,2,3,sep='=')   
'''
1=2=3
'''

# 同时制定sep和end
print(1,2,sep='and',end='!')
'''
1and2!
'''

三、变量和运算符

1、变量

  • 变量是用来保存数据的
  • 变量名 = 数据
  • 变量名:必须符合两个命题要求和三个规范
命名要求三个规范
标识符见名知意
不能是关键字不使用系统函数名(print、type等)、类名(int、float等)或者模块名
所有字母小写,多个字母之间用下划线隔开(也可以驼峰式命名)
  • 多个变量
# 同时定义多个变量不同的值:变量1,变量2,变量3,... = 数据1,数据2,数据3,...
x,y = 1,2
print(x,y)

# 交换不同变量的值:变量1,变量2 = 变量2,变量1
m = 1
n = 2
m,n = n,m
print(m,n)

2、运算符

  • 数学运算符

​ 数学运算符:+(加)、-(减)、*(乘)、/(除)、%(取余-求余数)、//(整除)、**(幂运算)

  • 比较运算符

​ 比较运算符:>(大于),<(小于),>=(大于等于),<=(小于等于),==(等于),!=(不等于)

​ 注意:所有比较运算符的运算结果都是布尔值

  • 逻辑运算符

​ 逻辑运算符:and(逻辑与),or(逻辑或),not(逻辑非)

  • 赋值运算符

​ 赋值运算符:基本运算符( = )和复合运算符(+=、-=、*=、/=、%=、//=、**=)

​ 例如:a += 1 相当于 a = a + 1

  • 运算符的优先级

​ 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)

​ ** > *、/、%、// > +、-

​ 有括号的先计算括号里面的

四、分支和循环

根据代码的执行顺序的不同,可以将代码分成3种结果:

1、顺序结构

  • 代码从上往下按顺序一条一条的执行(每个结构只执行一次)

2、if分支结构

# if单分支结构
'''
if 条件语句:
	代码段
'''

# if双分支结构
'''
if 条件语句:
	代码段1:
else:
	代码段2:
'''

# if多分支结构
'''
if 条件1:
    代码段1
elif 条件2:
    代码段2
elif 条件3:
    代码段3
...
else:
    代码段n
'''

3、循环结构(for,while)

  • for循环
'''
for 循环变量 in range(start,end)  (注意:end的值取不到)
        语句1
        语句2
        语句3
'''
  • while循环
'''
while 循环条件(产生布尔值的表达式):
    语句1
    语句2
    语句3
'''

五、练习

1、求1到100的和,1到100奇数的和

sum = 0
j_sum = 0
for i in range(1, 101):
    sum += i
    if i % 2 != 0:
        j_sum += i
print(f'1~100奇数和为{j_sum}')
print(f'1~100的和为{sum}')

2、找出100到999之间的水仙花数

(水仙花数:abc = a * 3 + b * 3 + c * 3)

for i in range(100,1000):
    a = i // 100        # 百位
    b = i % 100 //10    # 十位
    c = i % 10          # 个位
    if i == a ** 3 + b ** 3 + c ** 3:
        print(f'{i}是水仙花数')

3、输入一个大于1的正整数,判断它的是不是质数

num = int(input('请输入一个大于1的正整数:'))
is_prime = True
for i in range(2, int(num ** 0.5 + 1)):
    if num % i == 0:
        is_prime = False
        break

if is_prime:
    print(f'{num}是质数')
else:
    print(f'{num}不是质数')

4、输出100以内的质数

for i in range(1, 100):
    is_prime = True
    for j in range(2, int(i ** 0.5 + 1)):
        if i % j == 0:
            is_prime = False
            break
    if is_prime:
        print(f'质数:{i}')

5、求1-100的和

sum = 0
for i in range(1, 101):
    sum += i
print(sum)

6、猜数字小游戏

游戏规则:计算机产生一个1-100的随机数让人来猜,人输入自己的数字,计算机会提示’大一点‘,’小一点‘,‘猜中了’,如果没有猜中游戏继续。如果猜中了游戏结束,如果猜了7次以上,计算机提示’智商拙计‘。

import random

answer = random.randrange(1, 101)

count = 0
while True:
    count += 1
    num = int(input("请输入数字:"))
    if num == answer:
        print(f'猜中了!!!')
        break
    elif num < answer:
        print(f'大一点')
    else:
        print(f'小一点')
if count > 7:
    print(f'智商拙计!!!')

7、百钱百鸡问题

公鸡5元一只,母鸡3元一只,小鸡1元三只,欲用100买100只鸡,问公鸡、母鸡、小鸡各多少只?

money = 100
for x in range(0,21):
    for y in range(0,34):
        z = 100 - x - y
        if z % 3 == 0 and 5 * x + 3 * y + z // 3 == 100:
            print(f'公鸡、母鸡、小鸡各有{x}{y}{z}只')

8、捕鱼问题

有ABCDE五个人取捕鱼,捕完鱼太累倒头睡觉。第二天,A第一个醒过来,他把鱼分成五分,扔掉多余的一条,拿走自己的一份;B第二个醒过来,他以为鱼还没有分过,把鱼分成5分,扔掉多余的1条,拿走自己的一份;C、D、E依次醒过来,都是按照上面的方法,把鱼分成5条,扔掉多余的一条。问:他们最少捕了多少条鱼?

fish = 6
while True:
    t = fish
    is_enough = True
    for _ in range(5):
        if (t - 1) % 5 == 0:
            t = (t - 1) // 5 * 4
        else:
            is_enough = False
            break
    if is_enough:
        break
    fish += 5
print(f'最少有{fish}条鱼')

9、CRAPS赌博游戏 – 摇两颗色子

游戏规则:玩家摇色子,如果第一次要摇出了7点或者11点,玩家胜;如果摇出2点,3点,12点,庄家胜;其他情况,游戏继续,玩家重新摇色子,如果摇出了第一次摇的点数,玩家胜;
如果摇出7点,庄家胜;其他情况,游戏继续,直到分出胜利。
1、把游戏的场景模拟出来,输出玩家胜还是庄家胜;
2、玩家一开始有1000元,每次玩的时候下注,赢了获得对应的注码;输了就输掉对应的注码;
3、游戏结束的条件是玩家破产

import random

def roll_dice(n=2):
    total = 0
    for _ in range(2):
        total += random.randrange(1, 7)
    return total

money = 1000
while money > 0:
    print(f'你的总资产为:{money}元')
    bet = 0
    if money > 0 or money <= 1000:
        bet = int(input('请下注:'))
    first_piont = roll_dice(2)
    if first_piont in (7, 11):
        print(f'玩家胜利!!!')
        money += bet
    elif first_piont in (2, 3, 4):
        print(f'庄家胜利!!!')
        money -= bet
    else:
        while True:
            current_piont = roll_dice(2)
            if current_piont == first_piont:
                print(f'玩家胜利!!!')
                money += bet
                break
            elif current_piont == 7:
                print(f'庄家胜利!!!')
                money -= bet
                break
print(f'你破产了,game over!!!')

10、把两颗色子摇10000次,统计每种点数出现的次数,频率

import random

def roll_dice(n=2):
    total = 0
    for _ in range(2):
        total += random.randrange(1, 7)
    return total

c2 = c3 = c4 = c5 = c6 = c7 = c8 = c9 = c10 = c11 = c12 = 0
for _ in range(10000):
    face = roll_dice(2)
    if face == 2:
        c2 += 1
    elif face == 3:
        c3 += 1
    elif face == 4:
        c4 += 1
    elif face == 5:
        c5 += 1
    elif face == 6:
        c6 += 1
    elif face == 7:
        c7 += 1
    elif face == 8:
        c8 += 1
    elif face == 9:
        c9 += 1
    elif face == 10:
        c10 += 1
    elif face == 11:
        c11 += 1
    else:
        c12 += 1
print(f'2点出现了{c2}次,频率:{c2 / 10000}')
print(f'3点出现了{c3}次,频率:{c3 / 10000}')
print(f'4点出现了{c4}次,频率:{c4 / 10000}')
print(f'5点出现了{c5}次,频率:{c5 / 10000}')
print(f'6点出现了{c6}次,频率:{c6 / 10000}')
print(f'7点出现了{c7}次,频率:{c7 / 10000}')
print(f'8点出现了{c8}次,频率:{c8 / 10000}')
print(f'9点出现了{c9}次,频率:{c9 / 10000}')
print(f'10点出现了{c10}次,频率:{c10 / 10000}')
print(f'11点出现了{c11}次,频率:{c11 / 10000}')
print(f'12点出现了{c12}次,频率:{c12 / 10000}')

11、找出10000以内的完美数

完美数:如果一个数等于除自身以外的所有因子的和,那么这个数就叫做完美数
例如:6 = 1 + 2 + 3

for i in range(1, 10000):
    sum = 0
    for j in range(1, int(i ** 0.5 + 1)):
        if i % j == 0:
            sum += j
            if i != i / j:
                sum += i // j
    if i == sum:
        print(f'{i}是一个完美数')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值