Linux云计算训练营笔记day18(Python)
# 猜数字游戏: 程序生产一个 1-100的随机数
# 让用户重复去猜测, 直到猜对为止
# 如果用户输入的数字 大于 随机生成的数字 提示 大了
# 如果用户输入的数字 小于 随机生产的数字 提示 小了
# 否则 猜对了 break
# 增加需求 最多猜6次,如果没有猜对,提示 你失败了, 如果猜对了,显示总共猜了几次猜对
# import random # 导包
# # 产生随机数 1-100
# r = random.randint(1,100)
# count = 0
# while True:
# count += 1
# user = int(input("(猜数字)请输入1-100的数字:"))
# if user > r:
# print("大了")
# elif user < r:
# print("小了")
# else:
# print("恭喜你,猜对了,总共猜了",count,"次")
# play_again = input("还要在玩一次吗?(y/n):")
# if play_again == "y":
# count = 0
# r = random.randint(1,100)
# print("好的,我又想好了一个新数字,请继续猜吧!")
# else:
# print("谢谢参与,猜数字游戏结束!")
# break
# else: #如果循环条件不满足,才执行else
# print("你失败了")
# BMI 体重(千克) 除以 身高 的平方 得出来的数字
# 中国参考标准: BMI 身体质量指数
# 体重过低 BMI < 18.5
# 正常 18.5 ~ 24(不包含)
# 超重 24 ~ 28(不包含)
# I度肥胖 28 ~ 30(不包含)
# II度肥胖 30 ~ 40(不包含)
# III度肥胖 40以上
# count = 0
# while count < 3:
# count += 1
# height = float(input("请输入身高(m):")) # 1.74
# weight = float(input("请输入体重(kg):")) # 72
# bmi = weight / height ** 2
# if bmi < 18.5:
# print("体重过低")
# elif bmi < 24:
# print("正常")
# elif bmi < 28:
# print("超重")
# elif bmi < 30:
# print("I度肥胖")
# elif bmi < 40:
# print("II度肥胖")
# else:
# print("III度肥胖")
# 优先级从高到底 ( ) > ** > * / % // > + -
# 在终端输入两个数字, 输出两个数字中间的数
# 比如 3 , 8 4 5 6 7 while
# begin = int(input("请输入第一个数字:"))
# end = int(input("请输入第二个数字:"))
# while begin < end -1:
# begin += 1
# print(begin)
# # 比如 9 , 5 8 7 6 while
# while begin > end + 1:
# begin -= 1
# print(begin)
# 一张纸的厚度是0.01毫米, 请计算对折多少次可以超过珠穆朗玛峰 8844.43米 的高度
# zhi = 0.01 / 1000
# count = 0
# while zhi < 8844.43:
# zhi *= 2
# count += 1
# print("第",count,"次高度是:",zhi)
# print("需要对折",count,"次")
# while循环 根据条件重复执行 涉及到次数
# for循环: 遍历可迭代对象中的元素
# 可迭代对象: 依次获取数据元素的对象, 容器 字符串
# for 变量 in 可迭代对象:
# 语句块
# for item in "我叫龚里": #字符串
# print(item)
# range 整数生成器
# range(6) # 结束值(不包含)
# for item in range(6):
# print(item) # 0 1 2 3 4 5
#
# #range(1,5) # 起始值 结束值(不包含)
# for item in range(1,5):
# print(item) # 1 2 3 4
#
# # range(1,8,2) #起始值 结束值(不包含) 间隔(步长)
# for item in range(1,8,2):
# print(item) # 1 3 5 7
#
# # 使用for循环打印 0 1 2
# sum = 0
# for item in range(3):
# sum = sum +item
# print(item)
# print(sum) #3
# 使用for循环打印 5 6 7
# for item in range(5,8):
# print(item)
# # 使用for循环打印 8 7 6 5 4 3
# for item in range(8, 2, -1):
# print(item)
# # 使用for循环打印 -1 -2 -3 -4 -5
# for item in range(-1, -6, -1):
# print(item)
# 让用户从终端输入一个四位数 1234 输出每位相加之和 1+2+3+4
# str1 = input("请输入一个四位数:")
# sum = 0
# for item in str1:
# sum = sum + int(item)
# print(sum)
# 1.累加 1+2+3+..+98+99+100 的和
# sum = 0
# for item in range(1,101):
# sum += item
# print("1-100=>",sum) #5050
# 2.累加 1到100 之间能被5整除的数字
# sum = 0
# for item in range(1,101):
# if item % 5 == 0:
# sum += item
# print("1-100被5整除的和:=>",sum) #1050
# 3.累加 1到100 之间偶数的和
# sum = 0
# for item in range(1,101):
# if item % 2 == 1 :
# continue # 不满足条件跳过此次循环,进入下一轮循环
# sum += item
# print("1-100偶数的和=>",sum) # 2550
# 4.累加10-50之间 个位不是 2 / 5 / 9的整除
# sum = 0
# for item in range(10, 51):
# ge = item % 10
# if ge == 2 or ge == 5 or ge == 9:
# continue
# sum += item #等价于 sum = sum + item
# print("sum=", sum) # sum = 866
# 随机加法考试
# 随机产生两个数字(1-10), random.randint(1,10)
# 提示用户输入相加的结果 (格式: 7 + 3 = )
# 如果回答正确加10分,回答错误不得分
# 总共10道题 100分, 最后输出总得分
# import random
# score = 0
# for i in range(10):
# n1 = random.randint(10,99)
# n2 = random.randint(10,99)
# message = str(n1) + "+" + str(n2) + "="
# user_input = int(input(message))
# if n1 + n2 == user_input:
# print("恭喜你,答对了")
# score += 10
# else:
# print("很遗憾,这题做错了")
# print("总分是=", score)
# 字符串 由一系列的字符组成的不可变序列容器,存储的是字符的编码值 "a7"
# 字符: 单个的数字, 文字 , 符号 'a' '7'
# 字节byte: 计算机最小存储单位 1byte = 8bit
# 字符集: 存储字符与二进制的对应关系
# 编码: 将字符转换为对应的二进制的过程
# 解码: 将二进制转换为对应的字符的过程
# 编码方式:
# ASCII编码 包含英文 数字等字符,每个字符是1个字节
# GBK编码 兼容ASCII 包含21003个中文, 英文是一个字节 汉字是2个字节
# UTF-8 英文是一个字节,汉字是3个字节
# ord(字符) 函数 返回字符的unicode码
# chr(整数) 函数 返回整数对应的字符串
# 字符 => 整数
print(ord('a')) #97
print(ord('A')) #65 => 32
# 整数 => 字符
print(chr(97)) #a
print(chr(100)) #d
# 在终端输入一个字符串,循环打印每个字符的编码值
# str1 = input("请输入文字:")
# for item in str1:
# print(ord(item)) #龚 40858 里 37324 中20013 国22269
# 生成26个英文字母
for i in range(ord('a'), ord('z')+1):
print(chr(i))
# 字符串的拼接
# 方法一:使用百分号(%)格式化字符串
# 把变量拼接到占位符的地方 %s 字符串 %d数字 %f 小数
name = "Alice"
age = 25
height = 1.75
print("我的名字叫 %s ,我现在 %d 岁, 我的身高 %.2f" % (name, age, height))
# 方法二:使用字符串的format()方法
print("我的名字叫 {} ,我现在 {} 岁".format(name, age))
# 方法三
print(f"我的名字叫 {name} ,我现在 {age} 岁")
# 方法四
print("我的名字叫",name,",我现在",age,"岁")
# 字符串拼接 字符串是不可变的
name = "悟空"
name += "大圣"
print(name) #悟空大圣
# 重复
name *= 2
print(name) #悟空大圣悟空大圣
# 比较
str1 = "abc"
str2 = "axy"
print(str1 > str2) #False b < x 依次比较两个容器中的元素,一旦不同返回结果
# 成员运算
str3 = "我叫龚里"
print("龚里" in str3) #True
# 索引 index 定位字符串中的元素 字符串[index]
# 正向索引: index从0开始,第二个为1,最后一个为长度 -1 lend(s)-1
# 反向索引: index从-1开始,第二个-2..第一个 -长度 -len(s)
name = "我的名字叫老龚" #index: 0 1 2 3 4 5 6
print(name[2]) #名
print(name[-1]) #龚
print(name[1]) #的
# print(name[7]) #报错 string index out of range 下标越界
# print(name[-8]) #报错 string index out of range 下标越界
print(len(name)) #7 长度
print(name[len(name)-1]) #龚
print(name[len(name)//2]) #字
# 切片 从字符串中找多个元素
# 字符串[:结束索引] 字符串[开始索引:结束索引] 字符串[开始索引:结束索引:步长]
# 不包含结束索引 步长 默认是1
name = "我的名字叫老龚"
print(name[5:7]) # 老龚
print(name[:5]) # 我的名字叫
print(name[1:7:2]) #的字老
print(name[::1]) # 我的名字叫老龚
print(name[::-1]) #龚老叫字名的我
print(name[1:1]) #空
print(name[-2:2]) #空
print(name[-2:2:-1]) #老叫字
# 判断一个字符串是否是回文 正向 == 反向
# 回文: 上海自来水来自海上
str1 = "上海自来水来自海上"
if str1 == str1[::-1]:
print("是回文")
else:
print("不是回文")
# 在终端获取一个整数,作为矩形的边长,打印矩形
# 4 6
# **** ******
# * * * *
# * * * *
# **** * *
# * *
# ******
n = int(input("请输入一个整数:"))
print("*" * n)
for item in range(n-2):
print("*"+" "*(n-2)+"*")
print("*" * n)
# 打印三角形
for i in range(1,n+1):
print("*"*i)