Python 15

  1. 课上代码
#全局变量(global variable)和局部变量(local variable)和差别
def discounts(price, rate):
    final_price = price * rate
    print("这里试图打印全局变量old_price的值:", old_price)
    return final_price

old_price = float(input("请输入原价:"))
rate = float(input('请输入折扣率:'))
new_price = discounts(old_price, rate)
print('打折后价格是:', new_price)

>>> 
=================== RESTART: C:/Users/xin/Desktop/test.py ===================
请输入原价:100
请输入折扣率:0.8
这里试图打印全局变量old_price的值: 100.0
打折后价格是: 80.0
def discounts(price, rate):
    final_price = price * rate
    #print("这里试图打印全局变量old_price的值:", old_price)
    old_price = 50
    print('修改后old_price的值1是:', old_price)
    return final_price

old_price = float(input("请输入原价:"))
rate = float(input('请输入折扣率:'))
new_price = discounts(old_price, rate)
print('修改后old_price的值2是:',old_price)
print('打折后价格是:', new_price)

>>> 
=================== RESTART: C:/Users/xin/Desktop/test.py ===================
请输入原价:100
请输入折扣率:0.8
修改后old_price的值1是: 50
修改后old_price的值2是: 100.0
打折后价格是: 80.0

二. 测试题

  1. 目测以下程序会打印什么内容
def fun(var):
    var = 1314
    print(var, end = '')
    
var = 520
fun(var)
print(var)
1314520
  1. 目测一下程序会打印什么内容
var = ' Hi '

def fun1():
    global var
    var = ' Baby '
    return fun2(var)
    
def fun2(var):
    var += 'I love you'
    fun3(var)
    return var

def fun3(var):
    var = ' Jack '
    
print(fun1())
 Baby I love you

三. 动动手

  1. 编写一个函数,判断传入的字符串参数是否为回文联,也就是既可顺读,也可倒读,例如:abcba
#个人代码
#没有编写函数,而且比较复杂,需要把一句话拆成两段再比较是不是相同
checking_string = input("Please input a sentence: ")
length = len(checking_string)
half_length = length // 2
L1 = []
L2 = []

checking_string1 = checking_string[ : (half_length + 1)]
checking_string2 = checking_string[half_length : ]

length1 = len(checking_string1)
length2 = len(checking_string2)
for i in range(0, length1):
    L1.append(checking_string1[i])
for j in range(length2 - 1, -1, -1):
    L2.append(checking_string2[j])
    

if L1 == L2:
    print("Yes!")
else:
    print("No!")
#参考代码1
def palindrome(string):
    length = len(string)
    last = length - 1
    length //= 2
    flag = 1
    for each in range(length):
        if string[each] != string[last]:
            flag = 0
        last -= 1
        
    if flag == 1:
        return 1
    else:
        return 0
        
string = input("Please input a sentence: ")
if palindrome(string) == 1:
    print("Yes!")
else:
    print("No!")
#参考代码2
def palindrome(string):
    list1 = list(string)
#这一步想到了,但就是不知道怎么实现
    list2 = reversed(list1)
    if list1 == list(list2):
        return "Yes!"
    else:
        return "No!"
print(palindrome('abcba'))

二. 编写一个函数,分别统计处传入字符参数(可能不止一个参数)的英文字母,空格,数字和其他字符的个数

#个人代码
#还是没有写出函数,另外这只能测试一个参数
alphabets = 'QWERTYUIOPLKJHGFDSAZXCVBNMqwertyuioplkjhgfdsazxcvbnm'
number = '0123456789'
other_character = "~`!@#$%^&*()_+-={}|[]\:;'<>?,./"
num_alphabets = 0
num_number = 0
num_other_character = 0
num_space = 0

string = input("Please input a sentence: ")
for i in string:
    if i in alphabets:
        num_alphabets += 1
    elif i == ' ':
        num_space += 1
    elif i in number:
        num_number += 1
    elif i in other_character:
        num_other_character += 1
        
print(num_alphabets, num_number, num_other_character, num_space)
#参考代码
def count(*param):
    length = len(param)
    for i in range(length):
        letters = 0
        space = 0 
        digit = 0
        others = 0
        for each in param[i]:
            if each.isalpha():
                letters += 1
            elif each.isdigit():
                digit += 1
            elif each == ' ':
                space += 1
            else:
                others += 1
        print('第%d个字符串共有:英文字母%d个,数字%d个,空格%d个,其他字符%d个。' % (i + 1, letters, digit, space, others))

count('I love fishc.com.', 'I love you, you love me.')
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 5.4使用if语句处理列表 5.4.1检查特殊元素 这家比萨店在制作比萨时,每添加一种配料都打印一条消息。 5.4...
    三千院贺Hall阅读 1,571评论 1 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,955评论 25 709
  • 一黑一白两扭蛋你捡起黑,说我喜欢神秘 未知的绳索拉着惊奇的尾巴直向前方奔去不容许暗示禁止一切猜想 然而与臆测无关的...
    鉛筆羊阅读 1,063评论 1 2
  • 喜欢一个人,但是只会偷偷喜欢。不敢靠太近,怕被发现被拒绝。又怕了解之后没有想象中那么好。当他靠近你的时候,会紧张但...
    金水金水阅读 952评论 0 0
  • 有时候,那些“脾气好”的人,其实不是不会生气,而是对于他们来说,比起生气还有更重要的东西,需要他们去用心守护。生活...
    MC小五阅读 3,401评论 1 2

友情链接更多精彩内容