多只参数和中文输出

//多值参数
/*
 如果一个参数对应着多个值,那么直接按照"参数=值&参数=值"的方式拼接
 */
-(void)test
{
    //1.确定URL
    NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/weather?place=Beijing&place=Guangzhou"];
    //2.创建请求对象
    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    //3.发送请求
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {

        //4.解析
        NSLog(@"%@",[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]);

若输出中文则需重写系统的description方法(解决方法加分类)


@implementation NSDictionary (Log)

-(nonnull NSString *)descriptionWithLocale:(nullable id)locale
{
    NSMutableString *string = [NSMutableString string];

    //以{开头
    [string appendString:@"\n{\n"];

    [self enumerateKeysAndObjectsUsingBlock:^(id  __nonnull key, id  __nonnull obj, BOOL * __nonnull stop) {

        [string appendFormat:@"\t%@",key];
        [string appendString:@":"];
        [string appendFormat:@"%@,\n",obj];
    }];

    //以}结尾
    [string appendString:@"}"];

    NSRange range =  [string rangeOfString:@"," options:NSBackwardsSearch];
    if (range.location != NSNotFound) {
        [string deleteCharactersInRange:range];
    }

    return string;
}

@end

@implementation NSArray(Log)

-(nonnull NSString *)descriptionWithLocale:(nullable id)locale
{
    NSMutableString *string = [NSMutableString string];

    //以[开头
    [string appendString:@"["];
    [self enumerateObjectsUsingBlock:^(id  __nonnull obj, NSUInteger idx, BOOL * __nonnull stop) {

        [string appendFormat:@"%@,\n",obj];
    }];

    //以]结尾
    [string appendString:@"]\n"];

    NSRange range =  [string rangeOfString:@"," options:NSBackwardsSearch];
    if (range.location != NSNotFound) {
        [string deleteCharactersInRange:range];
    }

    return string;
}
<think>我们被要求解释如何在Python的print函数中输出多个参数,并按照指定格式输出相关问题。 首先,回答部分需要解释print输出多个参数的方法,包括基本用法高级技巧。 然后,在末尾必须包含“§§相关问题§§”并列出3-5个相关问题。 注意:使用中文回答,问题在末尾,且第一行必须是“§§相关问题§§”,然后紧跟问题列表,不换行分散。</think>### Python中`print`输出多个参数详解 #### 一、基础语法与机制 ```python # 基本用法(自动添加空格分隔) print("姓名:", "张三", "年龄:", 25) # 输出:姓名: 张三 年龄: 25 # 参数处理机制 # 1. 自动转换为字符串 # 2. 默认空格分隔 # 3. 末尾添加换行符 ``` #### 二、关键控制参数 | 参数 | 作用 | 示例 | 输出结果 | |------------|-----------------------|--------------------------|----------------------| | `sep` | 设置分隔符 | `print(1,2,3, sep="→")` | `1→2→3` | | `end` | 设置结尾符 | `print("A", end=""); print("B")` | `AB` | | `file` | 重定向输出 | `print("日志", file=open('log.txt','w'))` | 写入文件 | | `flush` | 强制刷新缓冲区 | `print("实时", flush=True)` | 立即显示 | #### 三、高级应用技巧 1. **类型混合输出** ```python # 自动处理不同类型 print("PI:", 3.14159, "列表:", [1,2,3], "元组:", (4,5)) # 输出:PI: 3.14159 列表: [1, 2, 3] 元组: (4, 5) ``` 2. **格式化组合输出** ```python # f-string + 多参数 name = "李四" print(f"姓名:{name}", "余额:", f"${1000:,.2f}") # 输出:姓名:李四 余额: $1,000.00 ``` 3. **迭代器解包** ```python data = ["A", "B", "C"] print(*data, sep="\n") # 解包输出 # 输出: # A # B # C ``` 4. **动态参数生成** ```python # 生成器表达式 print(*(i**2 for i in range(5)), sep="|") # 输出:0|1|4|9|16 ``` #### 四、特殊场景处理 1. **禁止换行** ```python # 进度条示例 import time for i in range(5): print(f"\r进度: {i+1}/5", end="", flush=True) time.sleep(0.5) ``` 2. **处理特殊字符** ```python # 输出Unicode转义字符 print("笑脸:", "\U0001F600", "换行符:", "A\nB") # 输出:笑脸: 😀 换行符: A # B ``` 3. **多语言支持** ```python print("中文:", "你好", "Japanese:", "こんにちは", "Emoji:", "🚀") # 输出中文: 你好 Japanese: こんにちは Emoji: 🚀 ``` #### 五、性能优化 ```python # 低效方式(多次I/O调用) print("a"); print("b"); print("c") # 高效方式(单次I/O调用) print("a", "b", "c", sep="\n") # 减少系统调用次数 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值