计算
三元运算符
age = 22
if age >= 18:
message = "yes"
else:
message = "no"
print('常规写法')
# ————————————————————————————
age = 22
message = "yes" if age >= 18 else "no"
print('高级写法')
# ————————————————————————————
age = 22
if age >= 18 and age < 60:
print('常用写法')
# ————————————————————————————
age = 22
if 18 <= age < 60:
print('高级用法,更干净')
九九乘法表
for i in range(1, 10):
for j in range(1, 10):
print(f"{i}*{j}={i*j:2d}", end=" ") # end=" " 表示结尾的空格,也可以是符号。
print('') # 每次循环一遍就打印一次,表示换行
# :2d 是将数字按宽度为2,采用右对齐方式输出,若数据位数不到2位,则左边补空格。
# :02d,和 :2d差不多,只不过左边补0
计算瑞年
1、被400整除;
2、被4整除但不能被100整除
year = int(input("请输入一个年份:"))
if year % 400 == 0 and (year % 4 == 0 or year % 100 != 0): # 括号可以不同要
print(f"数字{year}是闰年") # 格式化字符串方法一
else:
print("数字{}不是瑞年".format(year)) # 格式化字符串方法二
获取个十百千万上的金额数字
输入一个0-99999之间的数字,提示用户个十百千万上的数字是多少
number = input("请输入0-99999之间的数字:")
number = int(number)
# 获取个十百千万上的数字
a1 = number % 10 # 个位
a10 = number // 10 % 10 # 先整除,然后取余数,后面以此类推
a100 = number // 100 % 10
a1000 = number // 1000 % 10
a10000 = number // 10000 % 10
print(
f"你输入的数字{number}\n万位:{a10000}\n千位:{a1000}\n百位:{a100}\n十位:{a10}\n个位:{a1}")
剪刀石头布
random函数来制作随机数,因为汉字无法比较,所以我们给每一个方法赋给一个数字
import random
robot_number = random.randint(1, 3) # 机器人随机数字
user_number = int(input("请输入一个值:\n 1.剪刀\n2.石头\n3.布"))
print(f"电脑出的是{robot_number}")
if robot_number == user_number:
print("平局")
else:
if user_number > robot_number and not (user_number == 3 and robot_number == 1):
print("你赢了!")
elif user_number == 3 and robot_number == 1:
print("你输了!")
else:
print("你失败了!")
import random
import string
# 随机整数:
print(random.randint(1,50))
# 随机选取0到100间的偶数:
print(random.randrange(0, 101, 2))
# 随机浮点数:
print(random.random()) 不填,默认0-1之间的浮点数
print(random.uniform(1, 10))
# 指定字符中生成一个随机字符:
print(random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&*()')) # 结果 a
# 指定字符中生成指定数量的随机字符:
# 结果是列表 ['l', 'a', 'k', 'w', 'z']
print(random.sample('zyxwvutsrqponmlkjihgfedcba',5))
# 从a-z A-Z 0-9生成指定数量的随机字符(使用场景:激活码):
# ascii_letters是生成所有字母(包含大小写),digits是生成所有数字0-9
ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 8))
print(ran_str) # 结果 wVu47p0X
# 打乱排序
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(a)
print(a)
# 随机选取字符串:
print(random.choice(['剪刀', '石头', '布']))
计算1-100的和
sum = 0 # 定义一个盒子
for i in range(101):#循环从0-100取值
sum += i # sum=sum+i 每次都加上i直到100
print(sum) # 结果5050
计算1-100的偶数之和
sum = 0
for i in range(101):
if i % 2 == 0:
sum += i
print(sum) # 结果2550
提示用户输入3个数,组成一个列表
list = []
for i in range(3): # 从0123 不含3
num = input(f"请输入第{i+1}个数:") # 输入的是字符串
num = int(num) # 转化为整数,否则结果是 ['1', '2', '3']
list.append(num)
print(list) # 结果是 [1, 2, 3]
# 将列表里的值 X 2
list = [1, 2, 3]
for i in range(len(list)):
list[i] *= 2
print(list) # 结果是[2, 4, 6] 注意:一定要在循环外打印
# 计算新列表的元素之和
list = [2, 4, 6]
sum = 0
for i in list:
sum += i
print(sum) # 结果 12
找到100以内能被7整数和包含7的数字,并把他们放入列表
list = []
for i in range(101):
a = i % 10 # 个位的值
b = i // 10 % 10 # 十位的值
if i % 7 == 0 or (a == 7 or b == 7):
list.append(i)
print(list)
获取首字母并生成新的字符串
list = ['boy', 'girl', 'moon']
f1 = [i[0] for i in list] #这里i[0],就是取值第一个字母
f2 = "".join(f1)
print(f1) # ['b', 'g', 'm']
print(f2) # bgm
找出两个列表里的相同的值
list1 = range(10) # 0-10
list2 = range(6, 10, 2) # 6 8 10
result = [i for i in list1 if i in list2]
print(result) #结果 6 8
# result = [i for i in list2 if i in list1]# 两种写法效果一样
# print(result)
100-1000的最小的水仙花数
水仙花数:每位数字的三次幂之和等于它本身 比如 407= 4+0+7
list = []
for i in range(100, 1000):
a = i % 10 # 个位数
b = i % 10//10 # 十位数
c = i % 10//10 # 百位数
if (a**3+b**3+c**3 == i):
list.append(i)
print(f"水仙花数是:{i}")
print(f"最小的水仙花数是:{min(list)}")
#水仙花数是:125
#水仙花数是:216
#水仙花数是:729
#最小的水仙花数是:125