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 += iif 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 = Falsebreakif is_prime:print(f'{num}是质数')
else:print(f'{num}不是质数')

4、输出100以内的质数

for i in range(1, 100):is_prime = Truefor j in range(2, int(i ** 0.5 + 1)):if i % j == 0:is_prime = Falsebreakif 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 randomanswer = random.randrange(1, 101)count = 0
while True:count += 1num = int(input("请输入数字:"))if num == answer:print(f'猜中了!!!')breakelif 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 - yif 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 = fishis_enough = Truefor _ in range(5):if (t - 1) % 5 == 0:t = (t - 1) // 5 * 4else:is_enough = Falsebreakif is_enough:breakfish += 5
print(f'最少有{fish}条鱼')

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

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

import randomdef roll_dice(n=2):total = 0for _ in range(2):total += random.randrange(1, 7)return totalmoney = 1000
while money > 0:print(f'你的总资产为:{money}元')bet = 0if money > 0 or money <= 1000:bet = int(input('请下注:'))first_piont = roll_dice(2)if first_piont in (7, 11):print(f'玩家胜利!!!')money += betelif first_piont in (2, 3, 4):print(f'庄家胜利!!!')money -= betelse:while True:current_piont = roll_dice(2)if current_piont == first_piont:print(f'玩家胜利!!!')money += betbreakelif current_piont == 7:print(f'庄家胜利!!!')money -= betbreak
print(f'你破产了,game over!!!')

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

import randomdef roll_dice(n=2):total = 0for _ in range(2):total += random.randrange(1, 7)return totalc2 = c3 = c4 = c5 = c6 = c7 = c8 = c9 = c10 = c11 = c12 = 0
for _ in range(10000):face = roll_dice(2)if face == 2:c2 += 1elif face == 3:c3 += 1elif face == 4:c4 += 1elif face == 5:c5 += 1elif face == 6:c6 += 1elif face == 7:c7 += 1elif face == 8:c8 += 1elif face == 9:c9 += 1elif face == 10:c10 += 1elif face == 11:c11 += 1else: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 = 0for j in range(1, int(i ** 0.5 + 1)):if i % j == 0:sum += jif i != i / j:sum += i // jif i == sum:print(f'{i}是一个完美数')

week1 - 总结相关推荐

  1. 斯坦福-随机图模型-week1.0_

    title: 斯坦福-随机图模型-week1.0 tags: note notebook: 6- 英文课程-9-Probabilistic Graphical Models 1: Representa ...

  2. 20165203 《网络对抗技术》week1 Kali的安装与配置

    20165203 <网络对抗技术>week1 Kali的安装与配置 本人感觉Kali可以做很多有意思的事情,下面是本人的Kali的安装过程. 安装过程 光盘映像文件的下载 登录官网,选择下 ...

  3. mooc- 基本程序设计方法week1,week2

    学习了第一单元我们几本可以写出10行左右的代码. week1:python编程之基本方法 1.从计算机到程序设计语言: 理解计算机:计算机是能够根据一组指令操作数据的机器. 功能性:可以进行数据计算 ...

  4. NLP Coursera By Michael Collins - Week1

    转载自   NLP Coursera By Michael Collins - Week1 NLP Coursera By Michael Collins - Week1 构建模型框架 - Marko ...

  5. 2018-2019-2 《网络对抗技术》Kali安装 Week1 20165212

    2018-2019-2 <网络对抗技术>Kali安装 Week1 20165212 1.完成安装linux kali和vm tools 装的第三遍成功安装.前面两次镜像文件不行,没驱动(网 ...

  6. [buaa-SE-2017]个人作业-Week1

    个人作业-Week1 Part1:教材中不懂的问题 1.根据书中"除了前20的学校之外,计科和软工没有区别"所以计算机科学这个专业也许在我们学校是和软件工程有区别的,但是可以料想的 ...

  7. 斯坦福-随机图模型-week1.4_

    title: 斯坦福-随机图模型-week1.4 tags: note notebook: 6- 英文课程-9-Probabilistic Graphical Models 1: Representa ...

  8. 吴恩达机器学习:week1

    title: 吴恩达机器学习:week1 date: 2019-11-03 17:41:46 categories: 机器学习 tags: 机器学习 第1周 文章目录 第1周 1.1 欢迎 1.2 机 ...

  9. Machine Learning Practical 爱宝课程记录week1

    训练集.验证集.测试集 机器学习简单流程: 使用大量和任务相关的数据集来训练模型: 通过模型在数据集上的误差不断迭代训练模型,得到对数据集拟合合理的模型: 将训练好调整好的模型应用到真实的场景中: 我 ...

  10. HGAME 2022 week1 个人部分WP

    寒假期间,小萌新在家瞎搞CTF,也是第一次参加HGAME,整体来说题目是简单的,但对于我这个萌新菜鸟来说,还是一头雾水,只会做一些简单的密码题,week1的web和misc还能做出几题,后面几周就完全 ...

最新文章

  1. MFC 网络编程小结
  2. Nats的消息通信模型
  3. linux aspnet服务器,在Linux中安装ASPNET.Core3.0运行时的示例代码
  4. 在职人员计算机网络管理总结,关于学校网络管理员个人工作总结
  5. c++ map iterator 获取key_Java遍历Map的4种方法
  6. python 每月每周_R-Python:获取每月,每周的索引点
  7. Atitit 软件项目系统托盘图标解决方案
  8. 存储过程中进行循环处理数据
  9. 使用USB转485编程电缆连接西门子 S7-200的软件配置方法以及可能出现的问题
  10. 利用xposed自动获得微信个人收款二维码链接和收款记录
  11. LCD驱动芯片ST7789V
  12. JBoss,Geronimo还是Tomcat?——三种开源Java应用服务器的比较
  13. 【论文阅读】Pyramidal Convolution:Rethinking Convolutional Neural Networks for Visual Recognition
  14. NewStarCTF 公开赛wp
  15. line-height绝对值和相对值的区别
  16. 8.0之后关闭个人热点功能实现
  17. Vuex前端saas人力资源中台管理项目第五天 权限管理和图表设计
  18. 由sp单位引发的惨案
  19. idea断点里没有对号问题解决
  20. Python爬虫网络请求 requests(get、post)

热门文章

  1. mybatis-plus入门,熟练掌握 MyBatis-Plus,一篇就够!
  2. python输入逗号分隔值文件_Python-从文本文件中读取逗号分隔的值,然后将结果输出到文本fi...
  3. 选20万年薪城市还是5000工资家乡?三点就说透了,过来人掏心窝子
  4. FIFAonline3服务器正在维护,FIFAOnline3 3月3日维护到几点 FIFAOnline3 3.3日停机更新内容介绍...
  5. video(k_video)
  6. 国际计算机应用技术协会,计算机综合应用能力国际认证教程
  7. Linux中误删/root目录的恢复方法
  8. Z5S自定义短信铃声
  9. Android 中的看门狗—Watchdog
  10. 论文学习——降雨场次划分方法对降雨控制率的影响分析