Python入门的60个基础练习(一)
01-Hello World
python的语法逻辑完全靠缩进,建议缩进4个空格。如果是顶级代码,那么必须顶格书写,哪怕只有一个空格也会有语法错误。下面示例中,满足if条件要输出两行内容,这两行内容必须都缩进,而且具有相同的缩进级别。
print('hello world!')if 3 > 0:print('OK')print('yes')x = 3; y = 4 # 不推荐,还是应该写成两行
print(x + y)
02-print 函数
print('hello world!')
print('hello', 'world!') # 逗号自动添加默认的分隔符:空格 hello world!
print('hello' + 'world!') # 加号表示字符拼接 helloworld!
print('hello', 'world', sep='***') # 单词间用***分隔 hello***world
print('#' * 50) # *号表示重复 50 遍
print('how are you?', end='') # 默认 print 会打印回车,end=''表示不要回车
03-基本运算
运算符可以分为:算术运算符、比较运算符和逻辑运算符。优先级是:算术运算符>比较运算符>逻辑运算符。最好使用括号,增加了代码的可读性。
print(5 / 2) # 2.5
print(5 // 2) # 丢弃余数,只保留商
print(5 % 2) # 求余数
print(5 ** 3) # 5 的 3 次方
print(5 > 3) # 返回 True
print(3 > 5) # 返回 False
print(20 > 10 > 5) # python 支持连续比较
print(20 > 10 and 10 > 5) # 与上面相同含义
print(not 20 > 10) # False
04-input
number = input("请输入数字:") # input 用于获取键盘输入
print(number)
print(type(number)) # input 获得的数据是字符型print(number + 10) # 报错,不能把字符和数字做运算
print(int(number) + 10) # int 可将字符串 10 转换成数字 10
print(number + str(10)) # str 将 10 转换为字符串后实现字符串拼接
05-输入输出基础练习
username = input('username: ')
print('welcome', username) # print 各项间默认以空格作为分隔符
print('welcome ' + username) # 注意引号内最后的空格
06-字符串使用基础
python 中,单双引号没有区别,表示一样的含义
sentence = 'tom\'s pet is a cat' # 单引号中间还有单引号,可以转义
sentence2 = "tom's pet is a cat" # 也可以用双引号包含单引号
sentence3 = "tom said:\"hello world!\""
sentence4 = 'tom said:"hello world"'
# 三个连续的单引号或双引号,可以保存输入格式,允许输入多行字符串
words = """
hello
world
abcd"""
print(words)py_str = 'python'
len(py_str) # 取长度
py_str[0] # 第一个字符
'python'[0]
py_str[-1] # 最后一个字符
# py_str[6] # 错误,下标超出范围
py_str[2:4] # 切片,起始下标包含,结束下标不包含
py_str[2:] # 从下标为 2 的字符取到结尾
py_str[:2] # 从开头取到下标是 2 之前的字符
py_str[:] # 取全部
py_str[::2] # 步长值为 2,默认是 1
py_str[1::2] # 取出 yhn
py_str[::-1] # 步长为负,表示自右向左取py_str + ' is good' # 简单的拼接到一起
py_str * 3 # 把字符串重复 3 遍't' in py_str # True
'th' in py_str # True
'to' in py_str # False
'to' not in py_str # True
07-列表基础
列表也是序列对象,但它是容器类型,列表中可以包含各种数据
alist = [10, 20, 30, 'bob', 'alice', [1,2,3]]
len(alist)
alist[-1] # 取出最后一项
alist[-1][-1] # 因为最后一项是列表,列表还可以继续取下标
[1,2,3][-1] # [1,2,3] 是列表,[-1] 表示列表最后一项
alist[-2][2] # 列表倒数第 2 项是字符串,再取出字符下标为 2 的字符
alist[3:5] # ['bob', 'alice']
10 in alist # True
'o' in alist # False
100 not in alist # True
alist[-1] = 100 # 修改最后一项的值
alist.append(200) # 向**列表中追加一项
08-元组基础
元组与列表基本上是一样的,只是元组不可变,列表可变。
atuple = (10, 20, 30, 'bob', 'alice', [1,2,3])
len(atuple)
10 in atuple
atuple[2]
atuple[3:5]
# atuple[-1] = 100 # 错误,元组是不可变的
09-字典基础
# 字典是 key-value(键-值)对形式的,没有顺序,通过键取出值adict = {'name': 'bob', 'age': 23}len(adict)'bob' in adict # False'name' in adict # Trueadict['email'] = 'bob@tedu.cn' # 字典中没有 key,则添加新项目adict['age'] = 25 # 字典中已有 key,修改对应的 value
10-基本判断
单个的数据也可作为判断条件。任何值为 0 的数字、空对象都是 False,任何非 0 数字、非空对象都是 True。
if 3 > 0:print('yes')print('ok')if 10 in [10, 20, 30]:print('ok')if -0.0:print('yes') # 任何值为 0 的数字都是 Falseif [1, 2]:print('yes') # 非空对象都是 Trueif ' ':print('yes') # 空格字符也是字符,条件为 True
11-条件表达式、三元运算符
a = 10
b = 20if a < b:smaller = a
else:smaller = b
print(smaller)s = a if a < b else b # 和上面的 if-else 语句等价
print(s)
12-判断练习:用户名和密码是否正确
import getpass # 导入模块username = input('username: ')
# getpass 模块中,有一个方法也叫 getpass
password = getpass.getpass('password: ')if username == 'bob' and password == '123456':print('Login successful')
else:print('Login incorrect')
13-猜数:基础实现
import randomnum = random.randint(1, 10) # 随机生成 1-10 之间的数字
answer = int(input('guess a number: ')) # 将用户输入的字符转成整数
if answer > num:print('猜大了')
elif answer < num:print('猜小了')
else:print('猜对了')print('the number:', num)
14-成绩分类 1
score = int(input('分数:'))if score >= 90:print('优秀')
elif score >= 80:print('好')
elif score >= 70:print('良')
elif score >= 60:print('及格')
else:print('你要努力了')
15-成绩分类 2
score = int(input('分数:'))if score >= 60 and score < 70:print('及格')
elif 70 <= score < 80:print('良')
elif 80 <= score < 90:print('好')
elif score >= 90:print('优秀')
else:print('你要努力了')
16-石头剪刀布
import randomall_choices = ['石头', '剪刀', '布']
computer = random.choice(all_choices)
player = input('请出拳:')# print('Your choice:', player, "Computer's choice:", computer)
print("Your choice: %s, Computer's choice: %s" % (player, computer))
if player == '石头':if computer == '石头':print('平局')elif computer == '剪刀':print('You WIN!!!')else:print('You LOSE!!!')
elif player == '剪刀':if computer == '石头':print('You LOSE!!!')elif computer == '剪刀':print('平局')else:print('You WIN!!!')
else:if computer == '石头':print('You WIN!!!')elif computer == '剪刀':print('You LOSE!!!')else:print('平局')
17-改进的石头剪刀布
import randomall_choices = ['石头', '剪刀', '布']
win_list = [['石头', '剪刀'], ['剪刀', '布'], ['布', '石头']]
prompt = """(0) 石头
(1) 剪刀
(2) 布
请选择 (0/1/2): """
computer = random.choice(all_choices)
ind = int(input(prompt))
player = all_choices[ind]print("Your choice: %s, Computer's choice: %s" % (player, computer))
if player == computer:print('\033[32;1m 平局、033[0m')
elif [player, computer] in win_list:print('\033[31;1mYou WIN!!!\033[0m')
else:print('\033[31;1mYou LOSE!!!\033[0m')
18-猜数,直到猜对
import randomnum = random.randint(1, 10)
running = Truewhile running:answer = int(input('guess the number: '))if answer > num:print('猜大了')elif answer < num:print('猜小了')else:print('猜对了')running = False
19-猜数,5 次机会
import randomnum = random.randint(1, 10)
counter = 0while counter < 5:answer = int(input('guess the number: '))if answer > num:print('猜大了')elif answer < num:print('猜小了')else:print('猜对了')breakcounter += 1
else: # 循环被 break 就不执行了,没有被 break 才执行print('the number is:', num)
20-while 循环,累加至 100
因为循环次数是已知的,实际使用时,建议用 for 循环
sum100 = 0
counter = 1while counter < 101:sum100 += countercounter += 1print(sum100)相关文章:
Python入门的60个基础练习(一)
01-Hello World python的语法逻辑完全靠缩进,建议缩进4个空格。如果是顶级代码,那么必须顶格书写,哪怕只有一个空格也会有语法错误。下面示例中,满足if条件要输出两行内容,这两行内容必须都缩进,而且具有相…...
微软云学习环境
微软公有云 - Microsoft Azure 本文介绍通过微软学习中心Microsoft Learn来免费试用Azure上的服务,也不需要绑定信用卡。不过每天只有几个小时的时间。 官网 https://docs.microsoft.com/zh-cn/learn/ 实践 比如创建虚拟机,看到自己的账号下多了Learn的…...
大厂面试:找出数组中第k大的数的最佳算法
一.前置条件 假如数组为a,大小为n,要找到数组a中第k大的数。 二.解决方案 1.使用任意一种排序算法(例如快速排序)将数组a进行从大到小的排序,则第n-k个数即为答案。 2.构造一个长度为k的数组,将前k个数复制过来并降序…...
爬取高校专业信息的Python爬虫简介与实践
1. 介绍 在当前高校专业信息繁多的情况下,选择适合自己的专业成为了许多学生面临的挑战。为了帮助学生更好地了解各高校专业情况,我们开发了一个Python爬虫程序,用于爬取高校专业信息并保存到Excel文件中。本文将详细介绍该爬虫的实现过程以…...
redis 集群模式(redis cluster)介绍
目录 一 redis cluster 相关定义 1, redis cluster 是什么 2,redis 集群的组成 3,集群的作用 4,集群架构图 二 Redis集群的数据分片 1,哈希槽是什么 2,哈希槽如何排布 3,Redis集…...
python实现网络爬虫
网络爬虫是一个自动从互联网上抓取数据的程序。Python有很多库可以帮助我们实现网络爬虫,其中最常用的是requests(用于发送HTTP请求)和BeautifulSoup(用于解析HTML或XML文档)。 以下是一个简单的Python网络爬虫示例&a…...
LeetCode 836. 矩形重叠
解题思路 相关代码 class Solution {public boolean isRectangleOverlap(int[] rec1, int[] rec2) {int x1 rec1[0];int y1 rec1[1];int x2 rec1[2];int y2 rec1[3];int a1 rec2[0];int b1 rec2[1];int a2 rec2[2];int b2 rec2[3];return Math.min(y2,b2)>Math.max…...
为说阿拉伯语的国家进行游戏本地化
阿拉伯语是由超过4亿人使用的语言,并且是二十多个国家的官方语言。进入这些国家的市场并非易事——虽然他们共享一种通用语言,但每个国家都有自己独特的文化,有自己的禁忌和对审查的处理方式。这就是为什么视频游戏公司长期以来都远离阿拉伯语…...
【Python系列】读取 Excel 第一列数据并赋值到指定列
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
二叉树——存储结构
二叉树的存储结构 二叉树一般可以使用两种结构存储,一种是顺序结构,另一种是链式结构。 一、顺序存储 二叉树的顺序存储是指用一组连续的存储单元依次自上而下、自左至右存储完全二叉树上的结点元素,即将完全二叉树上编号为i的结点元素存储…...
LangChain - OpenGPTs
文章目录 MessageGraph 消息图认知架构AssistantsRAGChatBot 持久化配置新模型新工具astream_events总结 关键链接: OpenGPT GitHub 存储库YouTube 上的 OpenGPT 演练LangGraph:Python、JS 两个多月前,在 OpenAI 开发日之后,我们…...
pe格式从入门到图形化显示(四)-节表
文章目录 前言一、什么是Windows PE格式节表?二、解析节表并显示1.节表数据结构以及字段描述2.节表的属性3.解析4.显示 前言 通过分析和解析Windows PE格式,并使用qt进行图形化显示 一、什么是Windows PE格式节表? PE格式的节表(…...
路由策略与路由控制之双点双向重发布(OSPF-ISIS)实验
双点双向重发布在路由协议中,特别是在OSPF(开放式最短路径优先)与IS-IS(中间系统到中间系统)等协议之间,指的是在两个协议间或者两个进程间进行路由信息共享的机制。这种机制涉及到在两个不同的协议区域使用…...
9proxy—数据采集工具全面测评
9Proxy数据采集工具Unlock the web with 9Proxy, the top residential proxy provider. Get unlimited bandwidth, affordable prices, and secure HTTPS and Socks5 configurations.https://9proxy.com/?utm_sourceblog&utm_mediumcsdn&utm_campaignyan 前言 在当今数…...
上海晶珩树莓派工业智能机械臂,亮相2024年embedded world博览会!
上海晶珩树莓派工业智能机械臂,亮相2024年embedded world博览会! 工业智能机械臂是上海晶珩(EDATEC)团队基于树莓派工业相机ED-AIC2000和树莓派工业触摸屏ED-HMI2320开发的创新应用案例。 工业智能机械臂具备卓越的定位能力&…...
蓝桥杯——求和
题目 给定 n 个整数 a1, a2,…,an,求它们两两相乘再相加的和即: Sa1a2a1a3a1ana2a3 a(n-2)*an...a(n-1)*an 输入格式 输入的第一行包含一个整数 n。 第二行包含 几 个整数 a1,a2,,an。 输出格式 输出一个整数 S,表示所…...
设计模式:责任链模式示例
责任链模式可以应用于多种场景,下面是几个不同场景的例子,每个例子都包括完整的代码。 示例1:日志处理系统 在日志处理系统中,日志消息可以根据其严重性(错误、警告、信息)被不同级别的日志处理器处理。 …...
SpringBoot快速入门笔记(4)
文章目录 一、Vue框架1、前端环境准备2、简介3、快速开始4、事件绑定 二、Vue组件化开发1、NPM2、Vue Cli3、组件化开发4、SayHello自定义组件5、Movie自定义组件 一、Vue框架 1、前端环境准备 编码工具:VSCode 依赖管理:NPM 项目构建:VueCl…...
GoPro相机使用的文件格式和频率
打开GoPro相机(以11为例),里面是一个DCIM文件夹。 DCIM是digital camera in memory 的简写,即存照片的文件夹,常见于数码相机、手机存储卡中的文件夹名字。 正常手机拍照和视频都是保存在此文件夹的。正常建议不用删,因为只要拍照…...
Redis Stack 安装部署
参考:Run Redis Stack on Docker | Redis Redis-stack 初体验_redis stack-CSDN博客 【docker】运行redis_docker run redis-stack-server requirepass-CSDN博客 Redis Stack 是一组软件套件,它主要由三部分组成。 一个是 Redis Stack Server&#x…...
DownKyi完全指南:三步解锁B站8K视频下载的终极方案
DownKyi完全指南:三步解锁B站8K视频下载的终极方案 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等ÿ…...
别再手动算位宽了!Vivado FIR IP核的位宽计算逻辑与配置避坑指南
Vivado FIR IP核位宽计算实战:从黑盒解析到精准配置 在FPGA数字信号处理领域,FIR滤波器作为基础构建模块,其性能表现直接影响整个系统的信号处理质量。而位宽配置这个看似简单的参数,往往成为项目后期调试阶段的"隐形杀手&qu…...
Excel MCP Server终极指南:3步实现无界面Excel自动化处理
Excel MCP Server终极指南:3步实现无界面Excel自动化处理 【免费下载链接】excel-mcp-server A Model Context Protocol server for Excel file manipulation 项目地址: https://gitcode.com/gh_mirrors/ex/excel-mcp-server 你是否厌倦了手动操作Excel的繁琐…...
3步实现专业级AI换脸:roop-unleashed创新方案指南
3步实现专业级AI换脸:roop-unleashed创新方案指南 【免费下载链接】roop-unleashed Evolved Fork of roop with Web Server and lots of additions 项目地址: https://gitcode.com/gh_mirrors/ro/roop-unleashed 在数字创意飞速发展的今天,AI换脸…...
VHDL转Verilog终极指南:如何用VHD2VL v3.0快速完成硬件描述语言转换
VHDL转Verilog终极指南:如何用VHD2VL v3.0快速完成硬件描述语言转换 【免费下载链接】vhd2vl 项目地址: https://gitcode.com/gh_mirrors/vh/vhd2vl 在FPGA开发领域,VHDL和Verilog是两大主流硬件描述语言,但团队协作或项目迁移时经常…...
Wand-Enhancer:零成本解锁WeMod高级功能的完整指南
Wand-Enhancer:零成本解锁WeMod高级功能的完整指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为WeMod专业版的订阅费用而犹豫不决吗…...
Go语言缓存雪崩:防止缓存失效
Go语言缓存雪崩:防止缓存失效 1. 雪崩防护 type CacheWithProtection struct {cache *RedisCachemu sync.Mutexlocks map[string]*sync.Mutex }func NewCacheWithProtection(cache *RedisCache) *CacheWithProtection {return &CacheWithProtect…...
Vim-ai插件深度指南:在Vim中无缝集成AI提升开发效率
1. 项目概述:当Vim遇上AI,一场编辑器生产力的革命如果你和我一样,是个在终端里泡了十多年的老Vim用户,那你一定经历过这样的场景:面对一个复杂的函数重构,手指在键盘上飞舞,:s、%s、宏录制轮番上…...
SVG与CSS变量驱动的自动化品牌视觉生成技术实践
1. 项目概述:一分钟品牌塑造的实践宝库在品牌营销和创意设计领域,一个常见的痛点是如何快速、高效地生成高质量的视觉品牌资产。无论是初创公司需要一个临时的Logo,还是内容创作者想为新的系列视频设计一个统一的片头,传统的品牌设…...
别再让用户等上传!用@ffmpeg/ffmpeg在浏览器里直接压缩视频(附ThinkPHP项目实战)
浏览器端视频压缩实战:基于FFmpeg.wasm与ThinkPHP的高效集成方案 引言 在当今内容为王的互联网时代,视频已成为用户生成内容(UGC)的核心载体。然而,高清视频带来的大文件体积往往成为用户体验的瓶颈——上传等待时间长…...
