CZ-python01-06
练习代码
练习代码
# Python注释
# 注释不是越多越好,对于一目了然的代码,不需要添加注释
# 对于复杂的操作,应该在操作开始填上若干行注释
# 对于不是一目了然的代码,应在其行尾添加注释(为了提高可读性,注释与代码应间隔合适的距离,如两个空格)
# 切忌描述代码,如一句一句的解释代码 # 变量
# 定义:程序在运行过程中需要临时保存一些数据,此时就需要用到变量来进行数据的保存
#变量的作用举例:(以下实例只适用于python3.x)
"""print("今天很开心,我要吃红烧牛肉面....")
basket1 = "牛肉"
basket2 = "面条"
print("您购买了:")
print(basket1,basket2)
print("您购买了:", end='')
print(basket1,basket2)
print("您购买了:",(basket1,basket2), end="\n")
print("您购买了:", basket1,basket2, end="")
"""
# 运行结果:
# 今天很开心,我要吃红烧牛肉面....
# 您购买了:
# 牛肉 面条
# 您购买了:牛肉 面条
# 您购买了: ('牛肉', '面条')
# 您购买了: 牛肉 面条
# 变量的类型
# 整形:有符号整形、长整形、浮点型、复数
# 布尔类型:true、false
# 字符串类型:string
# 列表类型:list
# 元组:tuple
# 字典:dictionary
'''num1 = 1234567
num2 = 2 ** 200000
print("num1=", num1,"\n", "num2=", num2)
print(type(num1),type(num2))
num3 = 3.1415926
print(num3)
print(type(num3))
num4 = "hello python"
print(num4)
print(type(num4))
'''
#变量练习
#定义变量
'''beef_price = 18.5
noodles_price = 2
#求总和
total_price = beef_price + noodles_price
print("红烧牛肉面共花去:", end="¥")
print(total_price)
#满减优惠
total_price = total_price - 5
print("优惠后的价格:¥", total_price, end="")
'''
#标识符规则
# 由字母数字下划线组成,且数字不能开头(系统关键字除外),另外python中字母大小写敏感;
#命名规则:大驼峰(UserName)小驼峰(userName)
#关键字
# import keyword
# keywords = keyword.kwlist
# print(keywords) #运算符
# +、-、*、/、** 、%、//
# number1 = 10
# number2 = 20
# number3 = 2
#
# result1 = number1 + number2
# result2 = number1 - number2
# result3 = number2 * number1
# result4 = number1 / number3
# result5 = number1 ** number3
# result6 = number2 % number3
# result7 = number2 // number3
# print("result1=", result1)
# print("result2=", result2)
# print("result3=", result3)
# print("result4=", result4)
# print("result5=", result5)
# print("result6=", result6)
# print("result7=", result7) #复合运算符
# a = 1
# a += 1 #相当于 a = a + 1
# print(a)
#
# a *= 2 #相当于a = a * 2
# print(a)
#
# a -= 1 #相当于a = a - 1
# print(a)
#
# a /= 1 #相当于a = a / 1
# print(a)
#
# a %= 1 #相当于a = a % 1
# print(a)
#
# a **= 2 #相当于a = a ** 2
# print(a)
#
# a //= 1 #相当于a = a // 1
# print(a) #输入和输出
#input()函数收到的数据都是字符串类型
# username = input("请输入你的账号:")
# password = input("请输入你的密码:")
# print(username, password)
# print(type(username))
# print(type(password))
# #类型转换
# username = int(input("请输入你的账号:"))
# password = input("请输入你的密码:")
# print(type(username))
# print(type(password)) #加法计算器
# left_number = input("请输入左操作数:")
# right_number = input("请输入右操作数:")
# result = left_number + right_number #这样会将字符串进行相加
# print(result)
# result1 = int(left_number) + int(right_number)
# print(result1) #格式化输出
# name = "sishen"
# age = 22
# addr = "河南省安阳市汤阴县"
# print("你的名字是:%s,年龄:%d,家庭住址:%s" % (name, age, addr ))
# print("你的名字:" + name + "你的年龄:" + str(age) + "家庭住址:" + addr) #注意的是这里的age前面必须加上str进行类型转换,否则会报错
#
# f = 3.14159262345
# print("显示小数点后2位:%.2f" % f)
# print("显示小数点后4位:%.4f" % f)
# print("显示百分号:%.3f,百分数表示:31.41%%" % f)
# print("八进制表示保留两位小数:%o" % f) # TypeError: %o format: an integer is required, not float #输入输出练习
# name = input("请输入角色名:")
# level = input("请输入角色等级:")
# skill = input("请输入技能名称:")
# tel = input("请输入电话号码:")
# address = input("请输入住址:")
# print("==============角色面板================")
# print("角色名:%s" % name)
# print("角色等级:%s" % level)
# print("角色技能:%s" % skill)
# print("玩家电话:%s" % tel)
# print("家庭住址:%s" % address)
# print("======================================") #名片管理系统第一版
# name = input("请输入用户名:")
# age = input("请输入您的年龄:")
# skill = input("请输入您的技能:")
# telephone = input("请输入您的联系电话:")
# address = input("请输入您的住址:")
#
# print("========================bussiness card=========================")
# print("姓名:%s" % name)
# print("年龄: %s" % age)
# print("技能:%s" % skill)
# print("联系电话:%s" % telephone)
# print("家庭住址:%s" % address)
# print("===============================================================") #if语句
# age = int(input("请输入年龄:"))
# if age >= 18:
# print("年龄满足要求,可以进网吧开黑了。。。")
# else:
# print("熊孩子,作业写完没有,赶快回家去。。。。") #数字比较
# num1 = input("请输入第一个数字:")
# num2 = input("请输入第二个数字:")
#
# if num1 == num2: # = 赋值号 == 比较运算符
# print("num1=num2")
# else:
# print("num1 != num2") #取款例子
# name = input("请输入用户名:")
# password = input("请输入密码:")
#
# account = 10000
# print("欢迎%s登录世纪银行自动取款机" % name)
# money = input("请输入取款金额:")
# if account >= int(money):
# print("用户%s 此次提款: %s 元。余额:%d" % (name, money, account - int(money) ) )
# else:
# print("余额不足,请重新输入取款金额!") #逻辑运算符
# username = input("请输入账号:")
# password = input("请输入密码:")
#
# if username == "admin" and password == "admin123":
# print("登录成功!")
# else:
# print("账号或密码错误!请重新输入!") # card = input("请输入您的身份证号:")
# ticket = input("请出示您的车票:")
#
# #定义乘车人信息
# if card == "123123" or ticket == "1" or int(card) == 123123 or int(ticket) == 1:
# print("可以进站乘车!") # print("===" * 20)
# num = input("请输入一个10以内的整数:")
# if int(num) < 10:
# print("您输入的数是:%s" % num)
# else:
# print("您输入的数字有误,请重新输入!")
# if not (int(num) > 10):
# print("您输入的数是:%s" % num)
# else:
# print("您输入的数字有误!") # working_hours = input("请输入工时:")
# #初始化加班时长
# overtime = 0
# #判断用户是否有加班
# if int(working_hours) > 48:
# overtime = int(working_hours) - 48 #计算加班时长
#
# #结算工资
#print("++++++++" * 10)
# wage = 48 * 80 + overtime * 120
# print("======" * 20)
# print("薪资明细:工时:%s 小时,加班时长:%d 小时,工资:%d" % (working_hours, overtime, wage )) # user_name = input("请输入用户名:")
# password = input("请输入密码:")
# if user_name == "admin" and password == "123123":
# print("login success!")
# else:
# print("login faild!") # score = int(input("请输入分数:"))
# if score >= 60:
# print("congratulations,you access the exam!")
# else:
# print("sorry,you may need to retake the exam!") #奇偶性判断
# number = input("请输入一个数字:")
# if int(number) % 2 == 0:
# print("%s是一个偶数!" % number)
# else:
# print("%s是一个奇数!" % number) #初始化油箱油量
# oil = 100
# #接收用户输入
# oil_level = int(input("请输入当前油量:"))
# #判断油量
# if 25 < oil_level <=75:
# print("请放心行驶!")
# elif oil_level == 0:
# print("饿死老子了,动不了了!")
# elif oil_level <= 25:
# print("请及时加油!")
# elif oil_level > 75:
# print("可以大油门冲刺!")
# else:
# print("输入有误!请重新输入!")
########################################################################
#判断成绩等级
# score = int(input("请输入成绩:"))
# if 90 <= score <= 100:
# print("您的成绩是A")
# elif 80 <= score < 90:
# print("您的成绩是B")
# elif 70 <= score < 80:
# print("您的成绩是C")
# elif 60 <= score < 70:
# print("您的成绩是D")
# elif 0 <= score < 60:
# print("您的成绩是X")
#########################################################################
#ord函数和chr函数
# ch = input("请输入一个字符:")
# print("%s :的ASCII值: %d" % (ch, ord(ch)))
#
# asc = int(input("请输入一个ascii码值:"))
# print("ASCII %d 对应的字符为:%s"% (asc, chr(asc)))
##########################################################################
# ch = input("请输入一个字符:")
# #转换为ASCII码值
# asc = ord(ch)
#
# if 97 <= asc <= 122:
# print("您输入的是小写字母!")
# elif 65 <= asc <= 90:
# print("您输入的是大写字母!")
# elif 48 <= asc <= 57:
# print("您输入的是数字!")
# else:
# print("您输入的是其他字符!")
###########################################################################
# ch = input("请输入一个字符:")
# if "a" <= ch <= "z":
# print("您输入的%s 是小写字母!"% ch)
# elif "A" <= ch <= "Z":
# print("您输入的%s 是大写字母!"% ch)
# elif "0" <= ch <= "9":
# print("您输入的%s是一个数字!"% ch)
# else:
# print("您输入的%s 是其他字符!"% ch)
##########################################################################
# age = int(input("请输入您的年龄:"))
# money = int(input("请输入口袋中的钱数:"))
#
# if age >= 18:
# print("可以进入网咖!")
# if money >= 10:
# print("开机成功!")
# else:
# print("滚犊子,赶快赚钱去!")
# else:
# print("熊孩子,回家写作业去!")
#########################################################################
#名片管理系统
#接收用户输入的账户和密码
# user_name = input("请输入您的账号:")
# password = input("请输入您的密码:")
#
# #初始化一个名片
# name = "sishen"
# age = 20
# telephone = "19988886666"
# address = "宇宙太阳系哈哈星"
# #判断用户身份
# if user_name == "admin" and password == "admin123":
# print("欢迎管理员大大光临名片管理小店")
# print("您拥有本系统的最高权限!")
# print("++" * 10 + "操作菜单" + "++" * 10)
# print("1.修改名字")
# print("2.修改年龄")
# print("3.修改电话")
# print("4.修改地址")
# print("++" * 30)
# option = input("请管理员大大输入您的操作序号:")
# if option == "1":
# print("您选择的是修改名字")
# print("修改前的名字是:%s "% name, end="")# name = input("请输入修改后的名字:")# print("修改后的名字:%s "% name)
# elif option == "2":
# print("您选择的操作是:修改年龄")
# print("修改前的年龄:%d "% age)
# age = input("请输入修改后的年龄:")
# print("修改后的年龄:%d "% age)
# elif option == "3":
# print("您选择的是修改电话")
# print("修改前的电话:%s "% telephone)
# telephone = input("请输入修改后的电话!")
# print("修改后的电话:%s " % telephone)
# elif option == "4":
# print("您选择的操作是修改地址:")
# print("修改前的地址:%s "% address)
# address = input("请输入修改后的地址:")
# print("修改后的地址:%s "% address)
# else:
# print("亲爱哒管理员大大,臣妾不知道您想干什么。。。")
# print("+" * 30)
# print("姓名:%s "% name)
# print("年龄:%d "% age)
# print("电话:%s "% telephone)
# print("住址:%s "% address)
# print("+" * 30)
# #普通用户登录
# elif user_name == "abc" and password == "abc123":
# print("欢迎使用名片管理系统v1.0")
# print("=="*20)
# print("姓名:%s "% name)
# print("年龄:%d "% age)
# print("手机号:%s "% telephone)
# print("地址:%s "% address)
#
# else:
# print("账号或密码错误!")
# a = (36.9 + 26.9 + 15.9) * 0.75
# print(a) #字符串遍历
# my_string = "abcdefghijklmn"
# #1使用while遍历
# index = 0
# while index < len(my_string):
# print(my_string[index], end="|")
# index += 1
# print()
# #使用for循环
# for ch in my_string:
# print(ch, end="+") #列表
# my_list = []
# print(type(my_list))
# my_list = [1, 2, 3, 'a', 'b', ]
# print(my_list)
# my_list = list()
# print(my_list)
# #访问列表中的元素
# my_list = ["abc", [1, 2, 3], ["def"], 6, 7, 8]
# print(my_list[0])
# print(my_list[-1])
# print(my_list[2])
# print(my_list[1][0])
# #列表的遍历
# #my_list = [1, 2, 3, 4, "abd", "d", 'e']
# i = 0
# while i < len(my_list):
# print(my_list[i], end=" ")
# i += 1
# print("\n", "++" * 20)
# #使用for循环遍历列表
# for value in my_list:
# print(value, end=" ") # #直接创建列表
# my_list = [1, 2, 3, ' ', "abd" ]
# print(my_list)
# #循环创建列表
# my_list = [ ] #初始化列表
# i = 1
# while i <= 5:
# my_list.append(i)
# i += 1
# print(my_list)
#
# #使用函数创建列表
# my_list = range(1, 10)
# print(my_list) #但结果并没有在意料之中,因为在python3.X中,range函数返回值需要进行类型转换
# print(list(my_list)) #这样就是我们要的结果了
# #使用for循环创建列表
# for value in range(1, 10):
# print(value, end="") # my_list = []
# for value in range(1, 10):
# my_list.append(value)
# print(my_list, end="") #列表推导式
# my_list = [value for value in range(1, 10)]
# print(my_list)
#
# my_list = [ value + 100 for value in range(1,9)]
# print(my_list)
#
# my_list = [ 666 for value in range(3)]
# print(my_list)
#
# my_list = [ 888 for _ in range(6)]
# print(my_list)
# #偶数列表
# # my_list = [value % 2 == 0 for value in range(1,100)] #这种是错误也的写法
# # print(my_list)
# my_list = [ value for value in range(1, 100) if value % 2 == 0]
# print(my_list)
#
# #奇数列表
# my_list = [value for value in range(1, 51) if value %2 != 0]
# print(my_list)
################################################################################### # my_list = [ [1, 2, 3, 4], ["a", "b"] ]
# my_list[0] = "wogaileha"
# print(my_list)
# print(len(my_list))
# print(len(my_list[1]))
# print(type(my_list[0]))
#
# for value in my_list:
# for m in value:
# print(m, end=" ")
# print() #列表中常用的函数
#help(list.append)
# my_list = []
# my_list.append(10)
# my_list.append(20)
# help(my_list.insert)
# my_list.insert(0, "ff")
# print(my_list)
#
# list_a = ["a", "aa", "ccc"]
# list_b = [1, 2, 3, 4]
# list_a.append(list_b)
# print(list_a)
#
# list_a.extend(list_b)
# print(list_a)
#
# my_list = [ value for value in range(10, 20)]
# print(my_list)
# del my_list[0]
# print(my_list)
# my_list.pop(0)
# print(my_list)
# my_list.pop()
# print(my_list)
# my_list.append(18)
# print(my_list)
# #help(my_list.remove)
# my_list.remove(18)
# print(my_list)
# #使用index函数查询列表元素位置
# position = my_list.index(18)
# print(position)
# position = my_list.index(200)
# print(position)
# #使用in判断一个元素是否在列表中
# my_list = [ value for value in range(1, 50) if value % 2 == 0]
# print(my_list)
# if 11 in my_list:
# print("找到你了!")
# else:
# print("呜呜....") # my_list = [1, 1, 2, 3, 4, 5, 4, 3, 4, 6, 7]
# while 3 in my_list:
# my_list.remove(3)
# print(my_list)
# print(my_list.count(4))
# my_str = "a, bb, ccc, dddd"
# my_list = my_str.split(",")
# print(my_list)
# new_str = ",".join(my_list)
# print(new_str)
#############################################################
#列表排序
# my_list = [88, 2, 10, 3, 4, 1, 2, 101]
# # my_list.sort() #默认是升序
# # print(my_list)
# # my_list.sort(reverse=True) #指定降序
# # print(my_list)
# new_list = sorted(my_list) #sorted函数和sort函数的区别:sorted函数不会改变原列表的序列,sort函数会改变原列表的序列
# print(new_list)
# print(my_list)
# new_list01 = sorted(my_list, reverse=True)
# print(new_list01)
###################################################################
#元组
# my_tuple = (1, 2, 4, 5, 6)
# print(my_tuple)
# # my_tuple[0] = 100
# # print(my_tuple)
# my_tuple = ((1, 2), ("aa", "bbb"))
# print(my_tuple)
# new_tuple = my_tuple[0][1] #访问元组
# print(new_tuple)
# for value in my_tuple: #遍历元组
# for m in value:
# print(m, end=" ")
# print() # i = 0 #使用while遍历元组有问题
# while i < len(my_tuple):
# n = 0
# while n < i:
# print(my_tuple[n])
# n += 1
# i += 1
# print()
######################################################
#集合
# my_set = set()
# # my_set = set("hello", ['a', 'b', 'c'], (1, 2, 3)) #这样会报错
# # print(my_set)
# my_set = set([1, 2, 3, "abc"])
# print(my_set)
# #向集合中添加元素
# my_set.add("qwer")
# my_set.add(("abc"))
# print(my_set)
# my_set.update(["acbded", 1, 2, 333, 44])
# print("my_set:", my_set)
# print("===" * 20)
# #删除集合中的元素
# # new_set = my_set.pop()
# # print(new_set)
# my_set.add(0)
# print(my_set)
# my_set.pop()
# print(my_set)
# my_set = set([1, 2, 3, 4, 0, "aa", "bb"])
# my_set.add(999)
# print(my_set)
# my_set.remove(0)
# print(my_set)
# my_set.remove("aa")
# print(my_set)
# my_set.pop()
# print(my_set)
# # my_set.remove("cc") #如果被删除的元素不存在,则会报错
# # print(my_set)
# my_set.discard("cc") #同样状况,discard不会报错
# print(my_set)
# #集合遍历
# for value in my_set:
# print(value, end="|")
# print()
# #集合的交集、并集
# print("==" * 20)
# my_set1 = set([1, 2, 3, 4, 5])
# my_set2 = set([11, 22, 33, 44, 1, 2, 3, 4])
# inter = my_set1.intersection(my_set2)
# print("交集:", inter)
# new_inter = my_set1 & my_set2
# print(new_inter)
# print("==" * 20)
# un = my_set1.union(my_set2)
# print("并集", un)
# new_un = my_set1 | my_set2
# print(new_un)
#########################################################
# #小练习
# strings_owner = input("请输入一些字符:")
# #首先去重
# new_str = set(strings_owner)
# print(new_str)
# # for chr in strings_owner:
# # #统计当前字符的个数
# # count_string = strings_owner.count(chr)
# # print("字符%s出现的次数为:%d"% (chr, count_string))
# for chr in new_str:
# #统计当前字符的个数
# count_string = strings_owner.count(chr)
# print("字符%s出现的次数为:%d"% (chr, count_string))
# print("==" * 20)
############################################################
#字典
#创建一个空字典
# dict_01 = {}
# dict_01 = {"name":"死神", "age":10, "addr":"上海市长宁区娄山关路588号"}
# print(dict_01)
# # print(dict_01.keys())
# # print(dict_01.values())
# # print(dict_01["name"])
# # print(dict_01["age"])
# #添加、修改字典中的元素
# dict_01["sex"] = "M"
# print(dict_01)
# #字典中的key,,不允许重复,如果添加的key与之前存在的重复,则添加的会将之前的值覆盖
# dict_01["sex"] = "F"
# print(dict_01)
#字典的合并
# dict_01 = {"name":"sishen", "age":23}
# dict_02 = {10001:12345, 10002:21314, "name":"xueji"}
# dict_01.update(dict_02)
# print(dict_01 )
#del删除元素
# del dict_01[10001]
# print(dict_01)
#清空字典
# dict_01.clear()
# print(dict_01)
# print(dict_01.items())
####判断键值是否在字典中
# if "ID" in dict_01.keys():
# print("ID存在")
# else:
# print("ID 不存在!")
# if 23 in dict_01.values():
# print("23存在!")
# else:
# print("23不存在!")
#####遍历字典
# for key in dict_01.keys():
# print(key,end="-")
# print("")
# print("+++"*20)
# for val in dict_01.values():
# print(val, end="-")
# print("")
# print("==="*20)
#####遍历键值对
# for key, value in dict_01.items():
# print("%s:%s"% (key, value), end=" ")
####### 函数
#没有参数,没有返回值的函数
#定义函数
# def first_function():
# print("Hello,Python!")
# #调用函数
# first_function() #有参数没有返回值的函数
# #msg 形参
# def show_message(msg):
# print(msg)
# #调用带参数的函数
# s = "Hello,Python!"
# #s 实参
# show_message(s)
# show_message("hello Python")
# #两个参数的情况
# def print_message(msg1, msg2):
# result = msg1 + msg2
# print(result)
# print_message("hello", "Python") #注意参数数据类型要一致 #有参数有返回值
# def my_add(a, b):
# result = a + b
# #使用return返回一个数据
# return result #如果return关键字后面没有任何参数,这种情况会直接种植函数的执行,且不返回结果
# my_result = my_add(10, 20)
# print("result = %d" % my_result) #函数调用方式
# def my_sum(a, b, c):
# print("a = %d" %a)
# print("b = %d" %b)
# print("c = %c" %c)
# return a + b + c
# #1,直接从左向右传递参数
# result = my_sum(10, 20, 30)
# print("return = %d" % result)
# #2.指定参数位置
# result = my_sum(a=30, b=2, c=12)
# print("result = %d" % result) #多个返回值的函数
# def max_min_function(a, b, c):
# #定义变量保存最大值
# max_value = a
# #定义变量保存最小值
# min_value = a
#
# if max_value < b:
# max_value = b
# if max_value < c:
# max_value = c
# if min_value > b:
# min_value = b
# if min_value > c:
# min_value = c
# return min_value, max_value
# my_min, my_max = max_min_function(10, 20, 3)
# print("最小值:%d 最大值:%d" % (my_min, my_max))
#
# #有默认参数的函数
# def my_sum(a = 100, b = 200):
# return a + b
# result = my_sum()
# print(result)
# result = my_sum(20, 30)
# print(result) #不定长参数函数
# def my_temp_function(*num):
# #pass #什么都不执行使用pass
# #print(type(num))
# my_sum = 0
# for value in num:
# #print(value, end=",")
# my_sum = my_sum + value
# #print()
# return my_sum
# result1 = my_temp_function()
# result2 = my_temp_function(1)
# result3 = my_temp_function(1, 3, 50)
# result4 = my_temp_function(2, 4, 60, 100, 200)
# print(result1)
# print(result2)
# print(result3)
# print(result4) #不定长函数,字典
def dict_function(**num):
#print(type(num))
# print(num) #配合result5会打印出一个字典
print("num['a'] = %d" % num["a"])
print("num['b'] = %d" % num["b"])
print("num['c'] = %d" % num["c"])
# t = num.values() #输出字典中的值
# print(t)
# t = num.keys() #输出字典中的所有的键
# print(t)
t = num.items() #输出键值对
print(t)
result5 = dict_function(a = 1, b = 20, c = 30)
#################################################################################################################################
def my_test_function(a, *b, **c): #注意:0星参数必须在1星参数之前,1星参数必须在2星参数之前,这里如果写成my_test_function(a, **c, *b)就会报错
print("a = %d" % a)
print("b = ", end="")
for value in b:
print(value, end=" ")
print()
print("c = ",end="")
for key, value in c.items():
print("%s:%s" % (key, value), end="")
#使用此函数的前提至少需要传一个参数
my_test_function(10, 20, 30, 40, a1 = 50, b1 = 60)
06-10
#函数嵌套案例
#首先显示用户当前余额
#输入竞猜数字,要求对输入数字进行校验
#输入竞猜金额,并对账户余额进行合法性校验
#系统随机产生竞猜数字
#判断胜负
#计算当前账户余额
#导入随机数模块
import random
user_name = "sishen"
user_money = 100000
#显示用户信息
def show_user():
print("玩家姓名:%s账户余额:%d" % (user_name, user_money))
#输入竞猜数字
def input_quiz_number():
#保存竞猜数字
my_num = 0
while True:
#请输入竞猜数字
quiz_number = input("请输入竞猜数字:")
#判断输入的是否为数字
if quiz_number.isdigit():
#类型转换
quiz_number = int(quiz_number)
#判断输入的数字是否合法
if 0<= quiz_number <= 9:
my_num = quiz_number
break
else:
print("请输入0-9范围内的数字!")
else:
print("Sorry!输入的有误,请重新输入")
#返回竞猜数字
return my_num #输入竞猜金额
def input_quiz_money():
#保存竞猜金额
my_money = 0
while True:
print("请输入竞猜金额(1-%d):" % user_money, end="")
quiz_money = input()
if quiz_money.isdigit():
quiz_money = int(quiz_money)
if 1 <= quiz_money <= user_money:
my_money = quiz_money
break
else:
print("您输入的金额应该在1-%d范围内!" % user_money)
else:
print("您输入的有误,请重新输入!")
return my_money
#产生随机数字
def system_random_number():
return random.randint(1,9) #判断胜负
def judge_the_outcome(quiz_number, quiz_money, system_random_number):
#显示系统产生的随机数
print("系统产生的随机数为:%d,您的竞猜数字为:%d" % (system_random_number, quiz_number))
global user_money
if quiz_number == system_random_number:
print("您猜中了!获得%d元!" % (quiz_money * 2))
user_money = user_money + quiz_money * 2
else:
print("好可惜哦!您钱包减少了%d元!" % quiz_money)
user_money = user_money - quiz_money #计算当前余额
def calculate_account_balance():
pass
#游戏开始
def games_start():
#显示当前回合
round = 1
while user_money > 0:
print("当前是第%d回合" % round)
#显示用户信息
show_user()
#输入竞猜数字
quiz_number = input_quiz_number()
#输入竞猜金额
quiz_money = input_quiz_money()
#产生随机数字
random_number = system_random_number()
#判断胜负
judge_the_outcome(quiz_number, quiz_money, random_number)
#计算当前余额
calculate_account_balance()
#回合数加1
round += 1
print("==" * 20)
#启动程序
games_start()
函数
# def a_function():
# print("a function 1")
# print("a function 2")
# print("a function 3")
# print("a function 4")
#
# def b_function():
# print("b function 1")
# print("b function 2")
# a_function()
# print("b function 3")
# print("b function 4")
# def c_function():
# print("c function 1")
# print("c function 2")
# b_function()
# print("c function 3")
# print("c function 4")
# def d_function():
# print("d function 1")
# print("d function 2")
# c_function()
# print("d function 3")
# print("d function 4")
#
# c_function() #递归函数,自己调用自己
#递归函数必须有退出条件
# def recursive_function():
# print("hello python 1")
# print("hello python 2")
# print("hello python 3")
# print("hello python 4")
# recursive_function()
# recursive_function()
#递归函数
# def print_number(value):
# #退出条件
# if value == 0:
# return
# print_number(value-1)
# print(value, end="=")
# print_number(3)
# print()
# print("++" * 20)
# print_number(10)
##实现1-5累加和
# def print_number(value):
# #退出条件
# if value == 0:
# return 0
# result = value + print_number(value - 1)
# print(result)
# return result
#
# print_number(5)
#匿名函数
# def my_add(a, b):
# return a + b
# result = (lambda a, b: a + b)(10, 12)
# print(result)
#
# lambda_function = lambda a, b: a + b
# result = lambda_function(10, 11)
# print(result)
#############################################
students_info = [["张三", 20], ["王五", 23], ["赵六", 24], ["apple", 10], ["huawei", 20], ["xiaomi", 15]]
# print(students_info)
# students_info.sort()
# print(students_info)
# #按年龄由大到小排列
# students_info.sort(key=lambda student:student[1])
# print(students_info)
# #按名字排列
# students_info.sort(key=lambda student:student[0])
# print(students_info)
#按年龄排序
# def my_sort(student):
# return student[0]
# students_info.sort(key=my_sort)
# print(students_info)
#################################################
# def sort_function(key, num):
# result = key(num)
# return result
# result = sort_function(key=lambda x:x * 2, num=100)
# print(result)
#################################################
#可变和不可变类型
#引用即对象的别名
#不可变类型就是指通过引用不能修改对象的值
#在Python中可变类型只有两种:列表和字典
# a = 11
# print(id(a))
# a = 22
# print(id(a))
# # help(id)
# string = "abcd"
# print(id(string))
# string = "1234"
# print(id(string))
# a1 = 10
# a2 = 10
# print(id(a1))
# print(id(a2))
# a2 = 11
# print(id(a2))
###########################################
#可变类型 列表
# list_1 = [1, 3, 5, 7]
# print(list_1)
# print(id(list_1))
# list_1[0] = 100
# print(list_1)
# print(id(list_1))
#############################################
#不可变类型
# def my_function(pargram):
# print(id(pargram))
# pargram += 1
# print(pargram)
# my_numbers = 100
# my_function(my_numbers)
# print(my_numbers)
# ##########################################
# def temp_function(my_lists):
# my_lists[0] = 100
#
# a = [1, 3, 5]
# print(id(a))
# temp_function(a)
# print(a)
# int_lists = [100, 20, 32, 24, 55, 60, 27]
# int_lists.sort()
# print(int_lists)
###################################################
#员工管理系统
#1.添加员工
#2.显示员工
#3.删除员工
#4.退出系统
###字典保存全部变量
workers = {}
#员工编号
workers_id = 1000 #菜单选择
def show_menu():
print("1. 添加员工")
print("2. 显示员工")
print("3. 删除员工")
print("4. 退出系统")
operation = input("请输入您的操作:")
return operation
#添加员工
def add_worker():
worker_name = input("请输入员工姓名:")
worker_age = input("请输入员工年龄:")
worker_salary = input("请输入员工薪资:")
#保存员工信息到字典中
workers_dict = {}
workers_dict["name"] = worker_name
workers_dict["age"] = worker_age
workers_dict["salary"] = worker_salary #将员工信息插入到workers中
global workers_id
workers[workers_id] = workers_dict
workers_id += 1 #显示员工信息
def show_workers_info():
for key, value in workers.items():
print("工号:%d 姓名:%s 年龄:%s 工资:%s" % (key, value["name"], value["age"], value["salary"])) #删除员工
def del_worker():
del_id = input("请输入要删除的员工编号:")
#判断输入的编号是否合法
del_id = int(del_id)
if del_id in workers.keys():
print("编号为%d的员工被删除" % del_id)
del workers[del_id]
else:
print("编号为%d的员工不存在!" % del_id) #员工管理系统
def management_workers_system():
print("欢迎使用员工管理系统v1.0")
while True:
#1.显示菜单选项
operation = show_menu()
if operation == "":
add_worker()
elif operation == "":
show_workers_info()
elif operation == "":
del_worker()
elif operation == "":
print("欢迎下次使用员工管理系统!")
break
else:
print("输入有误,请重新输入!") #启动程序
management_workers_system()
文件操作
# open打开文件,close关闭文件
# #以读模式打开文件
# file1 = open("test.txt", "r")
# #read可以一次性读取文件内容
# content = file1.read()
# print(content)
# #关闭文件
# file1.close()
#########################################################
# #以写模式打开文件
# file2 = open("test1.txt", "w")
# #如果test1.txt文件不存在,则会创建该文件
# #将字符写入file2中
# string_1 = "haha,this is new create file!"
# file2.write(string_1)
# #关闭文件
# file2.close()
#########################################################
# read readline readlines
# read(n)默认读取所有文件,如果有参数n,表示一次只读n个字符
# readline 一次读取一行内容
# readlines 一次读取所有的内容,返回内容列表,每个元素就是一行内容
# 以读模式打开文件
# file_1 = open("test.txt", "r")
# 读取文件内容
# content = file_1.read(5)
# print(content)
# print("***" * 10)
# content = file_1.read(7)
# print(content)
# print("***" * 10)
# content = file_1.read(9)
# print(content)
# 循环读取文件内容,直至读取完毕
# while True:
# conent = file_1.read(5)
# #当读到文件末尾的时候,再读就读到空字符串
# if conent == "":
# print("文件内容读取完毕:")
# break
# print(conent, end="")
#################################
# 按行读取内容,直至读取完毕
# while True:
# line = file_1.readline()
# if line == "":
# print("文件按行读取完毕了!")
# break
# print(line, end="")
##################################
# 读取所有内容,按行存储在列表中
# my_lines = file_1.readlines()
# print(my_lines)
#
# #关闭文件
# file_1.close()
###################################
# #文件的写操作
# file_2 = open("test.txt", "w")
# #向文件中添加新内容
# str_1 = "now, insert into test.txt content!"
# file_2.write(str_1)
# #读取文件中的内容
# content = ["11111111\n", "2222222222\n", "aaaaaaaaaaa\n", "bbbbbbbbb\n"]
# file_2.writelines(content)
#
# #关闭文件
# file_2.close()
###########################################
# 指定位置读取文件内容
# file_2 = open("test1.txt", "r")
#
# print("当前位置:%d" % file_2.tell())
# #设置文件指针到文件开始向右偏移两个字节的位置
# #0开始,1当前,2结束
# #如果使用相对位置1和2的话,文件必须是二进制模式打开
# file_2.seek(2, 0)
# #读取四个字节的内容
# content = file_2.read(4)
# print(content)
# #关闭文件
# file_2.close()
#############################################
# 目录操作
import os # 1.创建文件夹
# os.mkdir("PY_create_1")
# 2.获取当前工作目录
# print(os.getcwd())
# #3.改变当前目录
# os.chdir("./PY_create_1")
# print(os.getcwd())
# #4.创建目录
# # os.mkdir("PY_create_1_1")
# print(os.getcwd())
# #改变当前目录
# os.chdir("./PY_create_1_1")
# print(os.getcwd())
###############
# 相对路径
# os.mkdir("../workgroup")
# os.chdir("../workgroup")
# print(os.getcwd())
# 删除目录
# 显示当前目录
# print(os.getcwd())
# #切换目录
# os.chdir("../")
# print(os.getcwd())
# #删除目录
# # os.rmdir("workgroup")
# #列出当前目录下的所有目录
# dir_list = os.listdir()
# print(dir_list)
#
# os.chdir("cz-python01")
# print(os.getcwd())
# print(os.listdir())
# os.chdir("PY_create_1")
# # os.rmdir("PY_create_1_1")
# print(os.getcwd())
# print(os.listdir())
# os.chdir("../")
# print(os.getcwd())
# os.rmdir("PY_create_1")
# os.getcwd()
######################
# 重命名
# print(os.getcwd())
# print(os.listdir())
# os.rename("PY_create_1", "PY_create_01")
# print(os.listdir())
##############文件操作案例---文件备份
# 输入需要备份的文件名
# print(os.getcwd())
# print(os.listdir())
# ########################################################################
# file_name = input("请输入文件名:")
# # 判断文件名称的合法性
# if not os.path.isfile(file_name):
# print("文件路径无效")
# else:
# # 查找.位置
# position = file_name.rfind(".")
# # 查找失败,返回-1
# if position > 0:
# file_new_name = file_name[:position] + "_backup" + file_name[position:]
# else:
# file_new_name = file_name + "_backup"
#
# # 打开新文件
# new_file = open(file_new_name, "wb")
# # 打开拷贝文件
# copy_file = open(file_name, "rb")
# # 读取拷贝文件内容
# content = copy_file.read()
# # 将拷贝的内容写入到新文件中
# new_file.write(content)
# # 关闭文件
# new_file.close()
# copy_file.close()
#
# print("文件备份完毕")
#######################################################################
# 输入需要备份的文件名
# file_name = input("请输入文件名:")
# #判断路径是否有效
# if not os.path.isfile(file_name):
# print("文件路径无效")
# else:
# #查找.的位置
# position = file_name.rfind(".")
# if position > 0:
# new_name = file_name[:position] + "_backup" + file_name[position:]
# else:
# new_name = file_name + "_backup"
# ##打开新文件
# new_file = open(new_name, "wb")
# #打开拷贝文件
# copy_file = open(file_name, "rb")
# content = copy_file.read()
# #将拷贝文件的内容写入到新文件中
# new_file.write(content)
# #关闭文件
# new_file.close()
# copy_file.close()
#
# print("文件备份完成!")
#################################################
###文件操作案例----批量修改文件名
# 创建目录batch_dir,在batch_dir中创建10个文件file_1..10
import os # os.mkdir("batch_dir")
# os.chdir("batch_dir")
# for index in range(1, 11):
# create_file = open("file_" + str(index), "w")
# create_file.close()
# print("文件创建完毕")
#####批量修改文件
# file_path = "batch_dir"
# #获取file_path下的所有文件名称
# file_list = os.listdir(file_path)
# print(file_list)
# 获取文件路径
# for path in file_list:
# original_path = file_path + "/" + path
# print(original_path)
# # new_path = file_path + "/" + "sishen_" + path
# new_path = file_path + "/" + path.replace("sishen_", "")
# print(new_path)
# #rename修改文件名称
# os.rename(original_path, new_path) # print("批量修改完成")
# os.rename(new_path, original_path)
# print("批量修改完成")
###########批量删除
# print(os.getcwd())
# print(os.listdir())
# os.removedirs("batch_dir") #非空目录删除会报错
# os.chdir("batch_dir")
# print(os.getcwd())
# # print(os.listdir())
# # os.remove("file_1")
# # print(os.listdir())
# os.chdir("batch_dir")
# # file_path = "batch_dir" #这样写 不知道为什么不对
# file_list = os.listdir()
# print(file_list)
# for file in file_list:
# os.remove(file)
# print(os.listdir())
# print("文件删除完成!")
CZ-python01-06的更多相关文章
- 《HelloGitHub月刊》第06期
前言 <HelloGitHub>月刊做到第06期了(已经做了6个月了),在GitHub上获得了100+的stars,虽然不多,但是我很知足了,说明有人觉得这个项目是有价值的.同时园子中的' ...
- iOS系列 基础篇 06 标签和按钮 (Label & Button)
iOS系列 基础篇 06 标签和按钮 (Label & Button) 目录: 标签控件 按钮控件 小结 标签和按钮是两个常用的控件,下面咱们逐一学习. 1. 标签控件 使用Single Vi ...
- javaSE基础06
javaSE基础06 一.匿名对象 没有名字的对象,叫做匿名对象. 1.2匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值的,无法获取属性值(现阶段只能设置和拿到一个属性值.只能调用一次方 ...
- 异步编程系列06章 以Task为基础的异步模式(TAP)
p { display: block; margin: 3px 0 0 0; } --> 写在前面 在学异步,有位园友推荐了<async in C#5.0>,没找到中文版,恰巧也想提 ...
- javascript基础06
javascript基础06 splice var del_arr = del.splice(0,2); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返 ...
- Linux 第06天
Linux 第06天 1.SAMBA服务器————(linux和windows的文件共享) 1.1 安装 yum install samba -yum 1.2 配置文件 /etc/samba/smb. ...
- plsql11.06注册码
plsql11.06注册码:Product Code(产品编号):4t46t6vydkvsxekkvf3fjnpzy5wbuhphqzserial Number(序列号):601769password ...
- shell脚本中的几个括号总结(小括号/大括号/花括号)--from:http://www.cnblogs.com/hanyan225/archive/2011/10/06/2199652.html
在Shell中的小括号,大括号结构和有括号的变量,命令的用法如下: 1.${var}2.$(cmd)3.()和{}4.${var:-string},${var:+string},${var:=stri ...
- VMware10.06精简版安装后台运行
VMware10.06精简版安装时会出现一个安装功能选择菜单,里面有一条后台运行必选功能,一般人会跳过条.当你打算在服务器上用vmware时,一定要安装后台运行服务,否则你无法换出正在运行的后台虚拟机 ...
- 驱动开发学习笔记. 0.06 嵌入式linux视频开发之预备知识
驱动开发读书笔记. 0.06 嵌入式linux视频开发之预备知识 由于毕业设计选择了嵌入式linux视频开发相关的项目,于是找了相关的资料,下面是一下预备知识 UVC : UVC,全称为:USB v ...
随机推荐
- QT下QThread学习(二)
学习QThread主要是为了仿照VC下的FTP服务器写个QT版本.不多说,上图. FTP服务器的软件结构在上面的分析中就已经解释了,今天要解决的就是让每一个客户端的处理过程都可以按一个线程来单独跑.先 ...
- ubuntu gcc低版本过低引起错误
错误内容: 正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状态信息... 完成 您可能需要运行“apt-get -f install”来纠正下列错误:下列软件包有未满足的依赖关系: ...
- Spark基本原理
仅作<Spark快速大数据分析>学习笔记 定义:Spark是一个用来实现 快速 而 通用 的集群计算平台:(通用的大数据处理引擎:) 改进了原Hadoop MapReduce处理模型,体现 ...
- 数据结构之 图论---bfs(邻接表)
数据结构实验之图论二:基于邻接表的广度优先搜索遍历 Time Limit: 1000MS Memory limit: 65536K 题目描述 给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索( ...
- 织梦DEDE多选项筛选_联动筛选功能的实现_二次开发
织梦默认的列表页没有筛选功能,但有时候我们做产品列表页的时候,产品的字段比较多,很多人都需要用到筛选功能,这样可以让用户更方便的找到自己所需要的东西,实现这个联动筛选功能需要对织梦进行二次开发,下面就 ...
- [SDOI2016] 模式字符串 (BZOJ4598 & VIJOS1995)
首先直接点分+hash就可以做,每个点用hash判断是否为S重复若干次后的前缀或后缀,每个子树与之前的结果O(m)暴力合并.在子树大小<m时停止分治,则总复杂度为O(nlog(n/m)). 问题 ...
- javascript之this指向
情况一: 如果一个函数中有this,但是没有被上一级调用,this指向window 例: function a(){ var num='11'; console.log(this.num); //u ...
- 利用PyCharm的Profile工具进行Python性能分析
Profile:PyCharm提供了性能分析工具Run->Profile,如下图所示.利用Profile工具可以对代码进行性能分析,找出瓶颈所在. 测试:下面以一段测试代码来说明如何使用pych ...
- spring配置mongodb连接副本集多个节点
mongodb版本3.4.x 1.配置副本集 先配置副本集,可参考我之前写的文章:http://blog.csdn.net/fuck487/article/details/78287362 注意:必须 ...
- linux--安装phpcurl扩展
在UBUNTU中直接用APT包管理工具安装: apt-get install curl libcurl3 libcurl3-dev php5-curl 安装好后重启Apache服务器就行了,如果还是不 ...