当前位置: 首页 > news >正文

50个例子学Python(一)

目录

demo1-输入输出

demo2-布尔变量

demo3-变量

demo4-字符串格式化

demo5-列表

demo6-元组

demo9-字典与集合

demo10-可变对象与不可变对象


demo1-输入输出

#demo-1
#输入输出
#print函数参数
#转义字符
#正数 浮点数 字符串

name = input("Please enter your name:")
print("hello,",name)

print("2**10 =",2**10) #注意:print函数的逗号默认为一个空格,这是因为sep参数默认为空格
print("2**10=",2**10,sep="")#因此可以将sep参数设置为""

print(2**5) #正数
print(3.1415926)#浮点数:IEEE754 浮点数的存储不精确
print("hello world") #打印字符串:字符串可以用单引号也可以用双引号,每个pritn后默认换行

print("hello ",end="") #注意:可以将end参数设置为"",这样就不会换行
print("world")

print("i'm ok")#""中含有'
print('i" ok')#''中含有“
print("i\' \"ok\"") #既有单引号与双引号 则使用转义字符\

print('\\\t\\')
print(r'\\\t\\')#r表示原生字符串,不转义,可以对比输出结果

demo2-布尔变量

#demo-2
#Bool变量
#注意大小写
#布尔值可以用and or not运算
#if语句

True
False

print(3>2)
print(3<2)

print("----and----")
print(True and True)
print(False and True)
print(True and False)
print(False and False)
print("----or----")
print(True or True)
print(False or True)
print(True or False)
print(False or False)
print("----not----")
print(not True)
print(not False)

#布尔值常用if结合使用
#if首先判断条件为True或者Fasle,然后执行相应语句
print("*"*20)#字符串还可以这样,使用*重复打印
age = 22
if age>0:
    print("Positive")
elif age<0:
    print("negative ")
else:
    print("zeros")
print("*"*20)

demo3-变量

#demo-3
#变量
#变量名由大小写字母、数字和_组成,不能以数字开头
#变量赋值:对变量赋值x = y是把变量x指向真正的对象,该对象是变量y所指向的。随后对变量y的赋值不影响变量x的指向
#除法

"""getVar可以由int变为float,这是因为Python是动态语言,变量本身类型不固定
    例如C或C++,变量声明或初始化时需要首先指定变量类型,且类型不可变
"""
getVar = 5 #驼峰命名法  # =为赋值,相当于在内存中创建了一个getVar的变量与5,并将getVar变量指向5
print(getVar)
getVar = 3.1415
print(getVar)

#两种写法均为将getVar加上5后再重新赋给getVar
getVar = getVar + 5 
getVar += 5
print(getVar)


#把一个变量a赋值给另一个变量b,实际上是把变量b指向变量a所指向的数据
print("!!!重要!!!")
tempA = "tempValue" #此时tempA指向tempValue
tempB = tempA       #此时tempB也指向tempValue
print(tempA,tempB)
tempA = "hello world" #此时tempA指向hello world,但tempB仍然指向tempValue
print(tempA,tempB)

print("\n*****除法*****")
print(10/3) #精确的除法
print(10//3)#地板除 向下取floor,只取整数部分
print(10%3) #mod求模得余数

demo4-字符串格式化

#demo-4
#字符串格式化
#爬虫中结构化的URL中常用
urlList = ["https://www.renrendai.com/loan-{}.html".format(i)  for i in range(5)]
for eachList in urlList:
    print(eachList)
    
testStr = "my name is {},my age is {}".format("zsl",999)
print(testStr)

#使用索引
testStr = "my name is {1},my age is {0}".format("zsl",999)
print(testStr)

demo5-列表

#demo-5
#列表list-有序集合
print("*****创建列表*****")
test = [10,3.1415,"a",["C","C++"],{"key":"value",}] #Python中的列表可以是不同类型
scoresList = [60,80,100]
print(test)
print(test[3][1]) #取列表中的列表
print(scoresList)
print("*****列表长度*****")
print(len(scoresList)) #列表长度
print("*****正向索引*****")
print(scoresList[0])#正向索引/从0开始
print(scoresList[1])
print(scoresList[2])
print("*****反向索引*****")
print(scoresList[-1])#反向索引:-1代表最后一个
print(scoresList[-2])#-2代表倒数第二个
print(scoresList[-3])#PS:若越界则报错
print("*****append追加*****")
print(scoresList)
scoresList.append(120)
print(scoresList)
print("*****insert插入*****")
print(scoresList)
scoresList.insert(0,0)#在索引为0处插入0
print(scoresList)
scoresList.insert(3,999)#在索引为0处插入0
print(scoresList)
print("*****pop删除*****")
print(scoresList)
scoresList.pop()#默认弹出最尾部元素
print(scoresList)
scoresList.pop(3) #弹出索引为0的元素
print(scoresList)
print("*****替换列表元素*****")
print(scoresList)
scoresList[0] = 9999
print(scoresList)

demo6-元组

#demo-6
#tuple元组
#tuple与list非常相似,但tuple一旦初始化后无法修改
scoresTuple = (60,80,100)
print(scoresTuple)

#初始化后无法修改,也无insert append pop等方法
#scoresTuple[0]=999 #T会报错ypeError: 'tuple' object does not support item assignment

#定义只有一个元素的tuple
oneTuple = (1)
print(oneTuple,type(oneTuple))
oneTuple = (1,) #需要加个, 因为()既可以生成tuple,也可以认为是表达式的小括号,有ambiguous
print(oneTuple,type(oneTuple))

print("****有趣的例子*****")
testTuple = (1,2,[3,4])
print(testTuple)
testTuple[2][0] = 666
testTuple[2][1] = 999
print(testTuple) #实质变的不是tuple,tuple始终指向两个整数一个列表,变的只是tuple中列表元素所指向的值
# testTuple[2] = [666,999] #这样则会报错,因为这是修改tuple所指向的元素,而tuple在初始化后就不能修改所指向的值
#demo-7
#条件判断

#if语句从上往下执行,如果有个判断语句为True,则执行相应语句
#往后的elif与else则忽略
#例如下面的if中,num也满足大于0,但不会输出statement2
#所以注意if语句中各个判断条件的顺序或者具体判断内容
num = 10
if num > 5:
    print("statement1")
elif num > 0:
    print("statement2")
else:
    print("else")
    
boolValue = 4>3

if boolValue: #关键是只要判断内容是True则会执行
    print("test")
#demo-8
#for循环

print("*****打印列表的每个值*****")
scoresLists = [0,60,80,100]
for eachScore in scoresLists:
    print(eachScore)
    
print("*****求列表数字总和*****")
scoresLists = [0,60,80,100]
scoresSum = 0
for eachScore in scoresLists:
    scoresSum += eachScore
print(scoresSum)
print("*****求1-100和*****")
mySum = 0
for each in range(1,101): #range(start,end)-左开右闭即[start,end)
    mySum += each
print(mySum)
print("*****for循环常见用法-enumerate:既要每个元素的值也要每个元素对应的索引*****")
for index,each in enumerate(range(1,21,3)): #range(start,end,step) 其中step为步长
    print(index,each)
    
print("*****for循环常见用法-zip:同时遍历两个可迭代对象*****")
for x,y in zip([1,2,3],[4,5,6]): #
    print(x,y)

#break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用”
print("*****continue:计算1-100的偶数和*****")
mySum = 0
for each in range(1,101):
    if each % 2 != 0:#计算偶数和,则遇到奇数时continue进入下一次循环
        continue
    mySum += each #只有偶数情况时才会执行该语句
print(mySum)
print("*****break*****")
mySum = 0
for each in range(1,101):
    if each % 2 != 0:
        break #第一次碰见奇数时就break结束循环,因此mySum仍为0
    mySum += each 
print(mySum)

demo9-字典与集合

#demo-9
#字典dict与集合set
#dict key:value 键值对 map
scoresDict = {
    "tom":100,
    "david":80,
    "green":60
}
print(scoresDict)
scoresDict["selly"] = 99
print(scoresDict)

print("*****判断key是否在字典里*****")
print("selly" in scoresDict)
print("test" in scoresDict)
print(scoresDict.get("test",999))
print(scoresDict.get("selly",999))#get函数若存在key,则放回value,否则返回自己设置的值
print("*****删除key*****")
print(scoresDict)
scoresDict.pop("tom")
print(scoresDict)

#set无序集合
print("*"*50)
# mySet = set(1,3,4,4,4,4,5,5) #TypeError: set expected at most 1 arguments, got 8
mySet = set([1,3,4,4,4,4,5,5,6,7,8,8,8,9]) #使用列表List创建集合
print(mySet)
print("*****使用add与remove*****")
print(mySet)
mySet.add(999)
print(mySet)
mySet.remove(999)
print(mySet)
print("*****集合交、并、差操作*****")
aSet = set([1,2,3,4])
bSet = set([3,4,5,6])
print(aSet & bSet)
print(aSet | bSet)
print(aSet-bSet)
print(bSet-aSet)

demo10-可变对象与不可变对象

#demo-10
#不可变对象 !!重要

#可变对象
testList = [9,10,6,4,5]
print(testList)
testList.sort()
print(testList)

#不可变对象:对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。
#相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。
testStr = "hello world"
print(testStr)
testAnotherStr = testStr.replace("l","L")
print(testStr)
print(testAnotherStr)

相关文章:

  • leetcode竞赛:20220904周赛
  • 算法小讲堂之B树和B+树(浅谈)|考研笔记
  • 【02】Camunda系列-扩展案例-用户任务、网关、决策自动化
  • J. Counting Trees (树,卡特兰数)
  • 77-Java的Set系列集合、Collection体系的总结
  • this指哪去了
  • 算法----二维区域和检索 - 矩阵不可变(Kotlin)
  • 向Visual Studio Code导入ST项目
  • ES6转为ES5 AST
  • 二分法查找方法
  • UE5物体旋转(蓝图版)
  • 【网络安全】SQL注入专题讲解
  • unordered_set、unordered_map的介绍+使用+比较
  • Leetcode139. 单词拆分
  • DRM系列(9)之drm_atomic_helper_commit
  • 「面试题」如何实现一个圣杯布局?
  • 2018一半小结一波
  • angular组件开发
  • Java 网络编程(2):UDP 的使用
  • Java到底能干嘛?
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Mac转Windows的拯救指南
  • Mysql数据库的条件查询语句
  • nginx 配置多 域名 + 多 https
  • php面试题 汇集2
  • webgl (原生)基础入门指南【一】
  • Xmanager 远程桌面 CentOS 7
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 分布式事物理论与实践
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 配置 PM2 实现代码自动发布
  • 深度学习入门:10门免费线上课程推荐
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 小程序测试方案初探
  • const的用法,特别是用在函数前面与后面的区别
  • Spring Batch JSON 支持
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (2.2w字)前端单元测试之Jest详解篇
  • (4)Elastix图像配准:3D图像
  • (C语言)共用体union的用法举例
  • (Java数据结构)ArrayList
  • (ZT)出版业改革:该死的死,该生的生
  • (超详细)语音信号处理之特征提取
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (转)Linux下编译安装log4cxx
  • .Net CF下精确的计时器